0
我有一個變量的類型字節,並通過喜歡這裏字節變量值誤差
BYTE a;
a=11111110;
的價值,但是當我調試的代碼,我在visual c++
看到的值是204,但它必須是244。 爲什麼價值不正確?
我有一個變量的類型字節,並通過喜歡這裏字節變量值誤差
BYTE a;
a=11111110;
的價值,但是當我調試的代碼,我在visual c++
看到的值是204,但它必須是244。 爲什麼價值不正確?
11111110
是一個十進制數字,而不是一個二進制。
如果你想將它設置爲二進制值11111110
,使用0xfe
代替。
在任何情況下,我不完全相信你有根據的事實,也說明它應該是244
當,其實254
值正確。
這是因爲11111110 % 256
是198
而不是204,最可能的情況是它會簡單地換行。事實上,在VC++ 2010,198
是結果我從類似的代碼獲得:
#include <iostream>
#include <windows.h>
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[]) {
BYTE a;
a = 11111110;
std::cout << (int)a << '\n';
return 0;
}
C++不具備二進制文字的原生支持(假設這是你想要做什麼)。 –
你如何得到204 ???????? (11111110 mod 256)= 198 –