计算机数据的表示和转换

R进制转十进制使用“按权站开发”

将R进制数的每一位数值用R^K表示,幂的底数是R,指数为K,K与该位和小数点之间的距离有关,当该位位于小数点的左边,K值是该位和小数点之间数码的个数,而当该位位于小数点右边,K值是负值,其绝对值是该位和小数点之间数码的个数加1。

栗子1:

二进制:10100.01 = 1*2^4+1*2^2+1*2^-2

栗子2:

七进制:604.01 = 6*7^2+4*7^0+1*7^-2

十进制转R进制使用“短除法”

栗子3:将十进制94转二进制

二进制|十进制    余数

2|94    0

2|47    1

2|23    1

2|11    1

2|5      1

2|2      0

2|1     1

0         

一直除到0为止,将余数反序排列,即为二机制,结果为 “1 011 110”。

栗子4:将十进制94转八进制

二进制|十进制    余数

8|94    6

8|11    3

8|1      8

0

一直除到0为止,将余数反序排列,即为八进制,结果为 “836”。

二进制转八进制和十六进制及2^N进制,惯用技巧

栗子4:将二进制1 011 110转八进制

将1011110按“从右致左,没3位一段,不足部分用0补齐”,即001011110 ,然后每3位转换成八进制:

第一段“001”,1*2^0 = 1

第二段“011”,1*2^1 + 1*2^0 = 3

第三段“110”,1*2^2 + 1*2^1= 6

转换后的八进制数为“136”

栗子4:将二进制1 011 110转16进制

将1011110按“从右致左,没4位一段,不足部分用0补齐”,即001011110 ,然后每3位转换成八进制:

第一段“0000”,0

第二段“0101”,1*2^2 + 1*2^0 = 5

第三段“1110”,1*2^3 + 1*2^2 + 1*2^1 = 14(E)

转换后的十六进制数为“5E”

扩散思维

通过“栗子3个”,“栗子4”联想到,将二进制转换成2^N进制的算法技巧

2^3(8)进制,每3个一段;2^4(16)进制,每4个一段;推测4(2^2)进制,每2个一段;推测32(2^5)进制,每5位一段;

推理验证

将二进制1 011 110转四进制:==> 01011110  ==>  1132,

验证过程“1 011 110”的十进制为“94” ==> “94”转换成四进制为“1132”;

将二进制1 011 110转三十六进制:==> 0001011110  ==>  2U(U对应30),

验证过程“1 011 110”的十进制为“94” ==> “94”转换成三十六进制为“2M”(M对应22);

总结:将2进制转换成2^N位时,当N小于5时,即转换16进制以下时,每N位一段,分段转换的方法才成立

 

转载于:https://my.oschina.net/u/3374461/blog/1930023

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值