我有一个变量类型Byte并像这样传递值
BYTE a;
a=11111110;
但是当我调试代码时,我在
visual c++
中看到a的值为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++ - 字节变量值错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22139334/