1. 10 進数を 2 進数に変換します
原則: 商が 0 または 1 になるまで、指定された数値を循環的に 2 で割ります。各ステップの除算結果の余りを記録し、対応するバイナリを逆に取得します。
たとえば、8 を 2 進数に変換すると、最初の 2 による除算は 4 (剰余 0)、2 回目の 2 による除算は 2 (剰余 0)、3 回目の 2 による除算は 1 (剰余 0)、最後の剰余は 1 となり、次に得られる剰余は 0 0 0 1 となります。
逆に言えば、1000です。コンピュータの内部表現のバイト長は、8ビット、16ビット、32ビットなど固定です。したがって、上位埋め込みでは、Java のバイトコードは 8 ビットなので、上位埋め込みは 00001000 になります。
書き方(8) 10 = (00001000) 2;
package sourceCode.hashMap;
public class mapHashCodeTest {
public static void main(String[] args) {
String str = toBinary(8);
System.out.println(str);
//运行结果:1000
}
static String toBinary(int num) {
String str = "";
while (num != 0) {
str = num % 2 + str;
num = num / 2;
}
return str;
}
}
2. 2進数を10進数に変換します
計算も非常に簡単で、例えば8を2進数で表現すると00001000なので上位の桁を除いて1000となりますが、このとき一の位(一の位は0で順番に押し戻す)と対応する桁の数値を掛けて2の累乗を計算し、その値を加算します。
したがって、(2の0乗)*0+(2の1乗)*0+(2の2乗)*0+(2の3乗)*1 = 8となります。
コード実装。Integer.parseInt("",2); を直接呼び出します。
System.out.println(Integer.parseInt("1000",2));
走行結果:8