可能重複:
how to get bit by bit data from a integer value in c?c - 從中字節得到位
我有一個8位字節,我想從這個字節變得有點像 了getByte (0b01001100,3)= 1
可能重複:
how to get bit by bit data from a integer value in c?c - 從中字節得到位
我有一個8位字節,我想從這個字節變得有點像 了getByte (0b01001100,3)= 1
Firstoff,0b
前綴不是C但C. 的GCC擴展爲了得到一個uint8_t a
的位3的值,可以使用以下表達式:
((a >> 3) & 0x01)
這將被評估,以1如果第3位被設置,並且如果第3位未被設置則爲0。
只是幫助那些可能不太熟悉二進制的人,第3位實際上是右邊的第四位數字,即1 ** 1 ** 110如果您想從右邊獲得第三位數字,您可以右移2位,第五,第四等 – Manitobahhh 2018-03-01 00:27:46
首先C 0b01...
沒有二進制常量,請嘗試使用十六進制常量。第二:
uint8_t byte;
printf("%d\n", byte & (1 << 2);
第三;一次錯誤。 – 2012-01-01 22:20:31
@refp良好的通話。 – cnicutar 2012-01-01 22:21:40
使用&操作來掩蓋你想要的位,然後使用>>你喜歡移動。
Arrgh,這麼多重複!讓我找到一個... – 2012-01-01 22:19:17