如果我有一個十六進制值53,那麼在Java中查看第6位和第7位的值是什麼最好的方法是什麼?位1將被視爲最低有效位(或一個字節內最右邊的位)。將十六進制轉換爲十進制值
目標是取bit6和bit7並將它們轉換爲其組合的十進制形式。
如果我有一個十六進制值53,那麼在Java中查看第6位和第7位的值是什麼最好的方法是什麼?位1將被視爲最低有效位(或一個字節內最右邊的位)。將十六進制轉換爲十進制值
目標是取bit6和bit7並將它們轉換爲其組合的十進制形式。
這很簡單:
byte b = 53;
boolean bit6 = ((b >> 5) & 1) == 1;
boolean bit7 = ((b >> 6) & 1) == 1;
或者:
byte b = 53;
int bit6and7 = b & (0x3 << 5); // Will give: 0 bit7 bit6 0 0 0 0 0
或者:
byte b = 53;
int bit6and7 = (b >> 5) & 0x3; // Will give: 0 0 0 0 0 0 bit7 bit6
可以屏蔽每個位都相應的2位數的冪。例如,要知道第四位的值,可以使用按位和8位。x&8 => x&(2^3) –
通常的位尋址是最低有效位是位0,而不是位1。 –
雖然不是您的問題的直接答案,但您可能也對[Integer.toBinaryString(int)]感興趣(http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html #toBinaryString(int)) –