查看C中变量的字节/位

时间:2012-04-02 17:33:24

标签: c byte

如何在C中查看变量的字节/位?就二进制而言,只是零和一。

我的问题是我想测试是否在变量x的最重要字节中存在任何零。任何帮助将不胜感激。

4 个答案:

答案 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)

逐字节打印内存,即从0sizeof(x)(如果x恰好是您的变量)。然后,在打印每个字节时,分别打印所有8位。

答案 3 :(得分:0)

if(x & 0x80) // assuming x is a byte(char type)
{
   // msb is set
}