十进制转二进制,手工计算【整数部分】

一、二进制转十进制:

二进制数: 11100

十进制 1*2^4+1*2^3+1*2^2^{}+0+0

=1*16+1*8+1*4+0+0

=28

十进制数:28

二、十进制转二进制:

十进制数:234

二进制转换过程:

234 /2=117 余数0

117/2=58 余数1

58/2=29 余数0

29/2=14 余数1

14/2=7 余数0

7/2=3 余数1

3/2=1 余数1

2/1=0余数1

需要倒过来 二进制结果就是

二进制数:11101010

三、Java代码实现:

public class Main {
    /*
    十进制转二进制
     */
    public static String toBinary(Integer decimalNumber) {
        if (decimalNumber == 0) {
            return "0";
        }

        StringBuilder binary = new StringBuilder();
        while (decimalNumber > 0) {
            binary.insert(0, decimalNumber % 2); // 取余数,得到最低位的二进制数
            decimalNumber /= 2; // 除以2,相当于向右移位
        }
        return binary.toString();
    }

    /*
    二进制转十进制
     */
    public static int toDecimal(String binaryNumber) {
        int decimal = 0;
        int base = 1;
        int length = binaryNumber.length();
        for (int i = length - 1; i >= 0; i--) {
            if (binaryNumber.charAt(i) == '1') {
                decimal += base;
            } else if (binaryNumber.charAt(i) != '0') {
                throw new IllegalArgumentException("Invalid binary number");
            }
            base *= 2;
        }
        return decimal;
    }


    public static void main(String[] args) {
        String binary = toBinary(234);
        System.out.println("二进制:" + binary);
        System.out.println("十进制:" + toDecimal(binary));
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值