显示MSB到LSB

时间:2014-10-08 08:59:09

标签: c binary printf bit-shift

我很难理解我的问题:

uint8_t nal_type=6;

for(i=7;i!=0;i--){
    printf("%d",(nal_type>>i)&0x01U);}
printf("\n");

我希望以下代码显示从MSB到LSB的二进制值。但它显示以下内容:

0000011    

有人可以启发我吗?

1 个答案:

答案 0 :(得分:2)

这只是循环中的一个简单错误,所以你没有看到LS位(位0) - 使它成为:

for (i = 7; i >= 0; i--)
{           ^^^^^^
    printf("%d", (nal_type >> i) & 0x01U);
}

然后输出为:

00000110

我认为你正在寻找(MSB到LSB)。