如何在C中查看变量的字节/位?就二进制而言,只是零和一。
我的问题是我想测试是否在变量x的最重要字节中存在任何零。任何帮助将不胜感激。
答案 0 :(得分:3)
使用逻辑AND运算符&
。例如:
char c = ....
if ( (c & 0xFF) == 0xFF) ... // test char c for zeroes
您可能希望使用移位和宏来自动化它,而不是使用数字常量,因为对于不同的类型,您需要不同的值来测试MSB。您可以使用sizeof
获取班次的值。
// test MSB of an int for zeroes
int i = ...
if ( ( i & (0xFF << 8*(sizeof(int)-1))) == (0xFF<<8*(sizeof(int)-1))) ...
答案 1 :(得分:1)
您可以使用以下测试
var&amp; (1&lt;&lt; N)
检查var中是否设置了位N.最重要的位取决于var。
的数据类型答案 2 :(得分:0)
逐字节打印内存,即从0
到sizeof(x)
(如果x
恰好是您的变量)。然后,在打印每个字节时,分别打印所有8位。
答案 3 :(得分:0)
if(x & 0x80) // assuming x is a byte(char type)
{
// msb is set
}