2014-04-29 46 views
0
struct bitCard { 
    unsigned int face : 4; 
    unsigned int suit : 2; 
    unsigned int color : 1; 
}; 

「前述結構定義表示構件面被存儲在4個比特, 構件套裝被存儲在2位和構件顏色被存儲在1個比特。比特的數量是基於值的所需範圍內每個結構成員成員臉部商店 從0(Ace)到12(King)-4位的值可以存儲0-15範圍內的值「(C如何編程)。 粗體的句子讓我感到困惑,因爲我無法理解爲什麼4位可以存儲從0到15的值。任何人都可以幫我解決問題嗎?爲什麼4位可以存儲0-15範圍內的值?

+2

二進制'0000' =小數點0,二進制'1111' =小數點15.存儲權?瞭解更多關於二進制數字系統http://en.wikipedia.org/wiki/Binary_number – gaganbm

回答

2

認爲2 4 = 16個可能的值的功率... 二進制值表示在範圍十進制數0..2^X - ,其中位

的X = NUM​​
1

因爲15 = 1 * 2^3 + 1 * 2^2 + 1 * 2^1 + 1*2^0即:15 = 0xF = 1111b

其中^是電源操作。

,或者更詳細的:

0000 = 0 
0001 = 1 
0010 = 2 
0011 = 3 
0100 = 4 
0101 = 5 
0110 = 6 
0111 = 7 
1000 = 8 
1001 = 9 
1010 = 10 
1011 = 11 
1100 = 12 
1101 = 13 
1110 = 14 
1111 = 15 

我確實可以推薦閱讀有關的二進制數的維基百科文章:http://en.wikipedia.org/wiki/Binary_number

1

因爲1 + 2 + 4 + 8 = 15接下去的4位二進制數的範圍可以從0到15的數字是:

0000b = 0d 
0001b = 1d 
0010b = 2d 
0011b = 3d 
... 
1110b = 14d 
1111b = 15d 
1

,因爲只有16唯一組合的0(感謝烏), 1您可以用4位表示

0000 0 
0001 1 
0010 2 
0011 3 
......... 
1111 15 
+3

這些不是排列,而是組合。 –

+0

@UdoKlein絕對固定 – Dabo

相關問題