简单的二进制转十进制算法

对于该算法的实现,可以考虑for循环对字符串进行遍历,对每一位字符依次处理,以下是从左往右的遍历字符串的代码示例

public static int binaryToDecimal(String binaryNumber) {
    int decimalNumber = 0;
    for (int i = 0; i < binaryNumber.length(); i++) {
        char bit = binaryNumber.charAt(i);
        decimalNumber = decimalNumber * 2 + (bit - '0');
    }
    return decimalNumber;
}

对于 decimalNumber = decimalNumber * 2 + (bit - ‘0’); 是指将已经得到的值对应的二进制进行右移一位,同时加上新遍历的一位的字符值,以此类推。
以二进制字符串101为例:
第一次遍历,decimalNumber=0,一次for循环后得到的decimalNumber为1,即1对应的十进制的值。
第二次遍历,先执行decimalNumber2,即将decimalNumber对应的二进制值右移-位。因此,此时decimalNumber对应的二进制值变为10。再加上新遍历字符的值,故第二次循环后decimalNumber值为2,对应的二进制为10。
第三次遍历,先执行decimalNumber
2,即将decimalNumber二进制形式右移一位,此时decimalNumber的值为4,对应的二进制为100,再加上新循环的字符的值,此时该值为1,因此第三遍循环结束后,decimalNumber的值为5,对应的二进制为101。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值