进制转换操作

while (n) {
                arr[num] = n % d;
                n = n / d;
                num++;
            }
            //转化进制

取整取模由高位转低位


转十进制

原理就是满多少进多少

                                     sum += arr[i] * pow(d, num - 1 - i);
            明白了,实际上其实只有最终转为十进制才能这么写,原因就在于我们的加减乘除都是遵循十进制的
            如29二进制就是11101,那么其实开始的第一个1本质上就是有2^4个2,进位而来的
            也就是1*2^4,后面同理
            什么进制,就遵循什么进位原则计算数据,最终全部相加就是十进制的结果就是因为运算时是遵循十进制的法则计算的。
            这是运算时总结的规律,记住就好。不信可以随便定一个任意进制的数字最终转为十进制的结果都是这样。
             1    1        1      1     1        //二进制转十进制
            2^4  2^3  2^2  2^1  2^0      都是指2的个数

第一位2^4个2,第二位2^3个.........

把当前进制的数的每一位用当前进制提取出来,然后求和,求和这个操作就是化为十进制的步骤。

2^4+2^3+2^2+2^1+2^0=29

也就是求和:数位数字*进制^(n-1),n指当前的数位,减一即使因为一开始是^0开始

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值