进制之间的转换规则

最近在学C语言,看了进制转换。以前也看过,但总是记不住,现在把进制转换的规则记录下来。

二、八、十六进制——>十进制,按权相加,这里的权就是所谓的位权(位置)

对于一个N进制数,转换规律:

针对整数部分从左往右,第J位的数g × N^{J-1},依次类推,直到N的0次方。(从右往左,次方数以0开始依次递进)

比如:一个八进制的数:67532

        转换为十进制即为:6×8^{4} + 7×8^{3} +5×8^{2} + 3×8^{1} + 2×8^{0} = 28160(十进制)

        将各个位的数字乘以位权,然后再相加,就得到了十进制形式

         一个十六进制数:2FB3

        转换为十进制为:2 × 16^{3} + 16 × 16^{2} + 11 ×16^{1}  + 3 × 16^{0}  =12467

二进制也是一样的规则。

小数部分: 从左往右,次方数以-1开始,依次推,第j位小数为g × N^{-J}

比如:一个八进制数23.654

转换成十进制为:2 ×8^{1} + 3 × 8^{0} +6× 8^{-1} + 5×8^{-2} + 4× 8^{-3}  = 19.8359375

十进制转换成N进制

整数部分:

将该整数以N为除数,进行整数,每次求商跟余数,一直到商为0时,从最后的的余数开始,取所有余数,即为转换为N进制后的数(“除 N 取余,逆序排列”

比如,一个十进制数36926,转换成八进制的过程为:

最后转换成八进制为110076 

小数部分

将小数部分乘以N,将结果中的整数部分剔除,再将剩余的小数部分再乘以N,再把乘积的整数部分提取,重复该动作,一直到最后的乘积不再有小数部分为止,取之前剔除的整数部分,从上往下顺序排列,即为转换的N进制数。(乘 N 取整,顺序排列)

比如一个十进制小数 0.930908203125,转换成八进制的过程如下:

最后转换成八进制数为:0.7345 

二进制转换为八进制跟十进制

将二进制分成三位一组,从低位向高位划分,不足位数时0添补,按照上面的N的几次方的转换方式,可以得到最后的数字

 

八进制转二进制,也是从低位向高位划分,1位八进制数转换为3位2进制数,以这样的方式进行转换

 

二进制转十六进制,是每4位二进制转换为1位十六进制

   十六进制转二进制,就是反过来,1位十六进制转换为4位二进制数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值