2014-10-08 43 views
0

我有一個很難理解我的問題:顯示MSB到LSB

uint8_t nal_type=6; 

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

我希望下面的代碼顯示從MSB到LSB的二進制值。但它顯示如下:

0000011  

有人能給我啓發嗎?

回答

2

它只是在你的循環一個簡單的錯誤,這樣你就不會看到LS位(0) - 使其:

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

這將然後給輸出:

00000110 

我認爲你正在尋找(MSB到LSB)。

+1

謝謝你,有時候很難退後一步看到這樣的錯誤! – 2014-10-08 09:10:04