16進値が53の場合、ビット6とビット7の値を確認するためのJavaでの最良の方法は何ですか?ビット1は、最下位ビット(またはバイト内の右端のビット)と見なされます。
目標は、bit6とbit7を取得し、それらを組み合わせた10進数形式に変換することです。
16進値が53の場合、ビット6とビット7の値を確認するためのJavaでの最良の方法は何ですか?ビット1は、最下位ビット(またはバイト内の右端のビット)と見なされます。
目標は、bit6とbit7を取得し、それらを組み合わせた10進数形式に変換することです。
最も簡単な方法は次のとおりです。
int bits7And8 = (byteValue >>> 5) & 3;
これにより、ビット6と7が最下位の2ビット位置になります。としての価値が必要な場合String
:
String bits7And8String = Integer.toString(bits7And8);
それは簡単だ:
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