我很难理解我的问题:

uint8_t nal_type=6;

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

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

有人能启发我吗?

最佳答案

这只是循环中的一个简单错误,因此您没有看到LS位(位0)-请执行以下操作:

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

然后输出如下:
00000110

我想这就是你要找的(MSB到LSB)。

09-26 06:01
查看更多