软件设计师--计算机组成与体系结构(数据进制表示)

298 阅读2分钟

这是我参与更文挑战的第1天,活动详情查看: 更文挑战

进制的转换

  • R进制转10进制用按权展开法 按权展开法,即把每一位的数与自己的权相乘(可能你还不明白,那咱们直接看例子)
例如二进制数
100011.011=12^5+02^4+02^3+02^2+12^1+12^0
+02^(-1)+12^(-2)+1*2^(-3)=35.375

例如八进制数
12345=1*8^4+28^3+3*8^2+4*8^1+5*8^0=5349

例如十六进制数
456=4*16^2+5*16^1+6*16^0=1110

看了这几个例子你明白了吗?是不是很简单,那么自己动手试一下吧,千万不要眼高手低哦。

知道了R进制如何转10进制,那10进制如何转R进制呢?

使用短除法

那么什么是短除法呢,我们依旧看例子来学习。

2|97	余1
2|48	余0
2|24  	余0
2|12	余0
2|6	余0
2|3	余1
2|1	余1	商为0
一直对2取余,直到商为0,那么上面的最终结果是什么呢?
就是把余数反着来写,即1100001
其他进制也一样只要把2换成R即可。

知道了R进制和10进制之间的互转,那么2进制,八进制,16进制如何转换呢?当然把他们转成10进制然后再转为所需要的进制是肯定可以的,但是却麻烦很多,那有没有什么快捷的方法呢?答案是当然有。

二进制转八进制
1001110101
从右往左数,三位一体(三位一分割),不够三位左边补0 即001 001 110 101-->1 1 6 5 即1165
二进制转16进制
1001101011101 
从右往左数 四位一体,不够四位左边补0 即0001 0011 0101 1101 -->1 3 5 D 即135D

你又要想了,那八进制和16进制怎么转2进制呢,那当然是把上面倒过来就是的呀!!!

不过遗憾的是八进制和16进制不能互转,需要转成二进制才能转换。

以上就是进制的转换问题,欢迎大家留言讨论,如有不对欢迎大家指正。