【算法】进制转换

进制转换

1、十进制整数转为n进制整数

1.1 除N取余法

所谓除N取余法,就是将一个是进制数除以N,得到一个商和一个余数,并记下这个余数r0。

然后将商作为被除数除以N,得到一个商和一个余数,并记下这个余数r1。

不断重复以上过程,直到商为0为止。

假设一共除了m次,则得到的N进制整数从高位到低位为r(m-1) … r2 r1 r0。

如十进制整数10转化为2进制的过程为:

10/2 = 5余0

5/2 = 2余1

2/2 = 1余0

1/2 = 0余1

所以二进制形式为1010

1.2 降幂法

所谓降幂法就是将十进制整数不断减去与该整数最接近的N进制整数的位权,如果够减m次则对应N进制位上的数字为m(m<N),否则为0。得到的差值作为新的被减数进行下一次计算,直到被减数为0。

如十进制数130转换成8进制的过程为:

130-82=66

66-82=2

2-8(不够减)

2-1=1

1-1=1

所以对应的8进制整数为202

2、十进制小数转为n进制小数

2.1 乘N取整法

所谓乘N取整法是将十进制的小数乘以N,得到的整数部分作为小数点后第一位。剩余的小数部分再乘以N,得到的整数部分作为小数点后第二位。直到剩余小数部分为0,或达到一定精度为止。

如十进制的0.54转换为16进制的过程为:

0.55*16=8.8 —8

0.8*16=12.8 —12(C)

0.8*16=12.8 —12(C)

0.8*16=12.8 —12(C)

由于不能被精确的转换,我们可以只取前4位,为0.8CCC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值