我有一个变量类型Byte并像这样传递值

BYTE a;
a=11111110;


但是当我调试代码时,我在visual c++中看到a的值为204。但必须为244。
为什么值不正确?

最佳答案

11111110是十进制数字,而不是二进制数字。

如果要将其设置为二进制值11111110,请改用0xfe

无论如何,基于您还声明该值应为244(实际上为254)这一事实,我不能完全确定您的值是否正确。

这是因为11111110 % 256198而不是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/

10-13 06:52