随笔- 12  文章- 2  评论- 0  阅读- 14026 

一、完整代码

复制代码
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. 数组反向输出?:在取任意进制时,算法是先除得取。最后从最下层至上一层。一层一层获取余数。并作为高位至代位摆放
 posted on   羊羊艹人  阅读(2176)  评论(0编辑  收藏  举报
编辑推荐:
· 大模型 Token 究竟是啥:图解大模型Token
· 35岁程序员的中年求职记:四次碰壁后的深度反思
· 继承的思维:从思维模式到架构设计的深度解析
· 如何在 .NET 中 使用 ANTLR4
· 后端思维之高并发处理方案
阅读排行:
· BotSharp + MCP 三步实现智能体开发
· BotSharp 5.0 MCP:迈向更开放的AI Agent框架
· 5. RabbitMQ 消息队列中 Exchanges(交换机) 的详细说明
· 【ESP32】两种模拟 USB 鼠标的方法
· 设计模式脉络
点击右上角即可分享
微信分享提示