Java中通过代码得到int类型数值的二进制形式

时间:2023-03-09 15:50:06
Java中通过代码得到int类型数值的二进制形式

一、完整代码

public class BigInteger {

    int sing;
byte[] val; public BigInteger(int val){
// 将传递的初始值,按位取值,存入字节数组中
int val2 = val;
int i=0;
while(val/2!=0){
val = val/2;
i++;
}
i++;
this.val = new byte[i];
int j=0;
while(val2/2!=0){
this.val[j++] = (byte) (val2%2);
val2 = val2/2;
}
this.val[j]=(byte) (val2%2);
}
public static void main(String[] args) {
System.out.print("请输入要转换为二进制的数:");
BigInteger bigInteger = new BigInteger(new Scanner(System.in).nextInt());
for(int i=bigInteger.val.length-1;i>=0;i--){
System.out.print(bigInteger.val[i]);
}
}
}

二、核心思想

  1. 以 byte[] 存取二进制
  2. 通过 wile() 对该数不断除2,得到数组应设大小。
  3. 再次通过 while() 对该数的副本不断除2,取余。放入 byte[] 数组
  4. 最后输出

三、注意事项

  1. 计算数组应设长度时在最后加1:因为数组长度是从1开始,但代码中 i 是从 0 开始。
  2. 数组反向输出?:在取任意进制时,算法是先除得取。最后从最下层至上一层。一层一层获取余数。并作为高位至代位摆放

相关文章