数値のバイナリコードを提供したいと思います。次のコードは確かに「バイナリコード」を提供しますが、彼はそれを間違った順序で実行します。たとえば、1のバイナリコードを出力したい場合、「00000001」ではなく「10000000」が出力されます。任意の数に2を掛けると、バイナリコードが左にシフトすることを認識しました。たとえば、番号5にはバイナリコード「00000101」があり、番号10にはバイナリコード「00001010」があります。このメカニズムを使うことを考えましたが、それでも正しい考えには至りませんでした。
for (int j = 0; j <= 7; j++) {
if (x % 2 == 0) {
IO.print(0);
}
else {
IO.print(1);
x = x / 2;
}
}
for (int j = 7; j >= 0; --j) {
if ((x & (1 << j)) != 0) {
IO.print("1");
} else {
IO.print("0");
}
}
ビット単位で実行することにより、(を使用して&
)チェックしているビット以外のすべてのビットをマスクすることができます。
「マスク」を生成するには、ビット0のみを1(1
)に設定して数値を左にシフトします。
a & b
式の結果を実行すると、との両方1
にあっ1
たすべての位置にビットが含まれます。a
b
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加