十二进制和十进制之间的转换

当前计算机系统使用的基本上是二进制(“逢二进一”“借一当二”),而人们常用的进制还有十进制、八进制、十六进制等等。于是我们就需要进行进制之间的转换。 以下就是进制相互转化表 那么问题来了,这个表需要背诵吗?不是吧,看着就头大,背就更不可能了。别急,进制之间的转换可以靠算的,

当前计算机系统使用的基本上是二进制(“逢二进一”“借一当二”),而人们常用的进制还有十进制、八进制、十六进制等等。于是我们就需要进行进制之间的转换。

以下就是进制相互转化表

那么问题来了,这个表需要背诵吗?不是吧,看着就头大,背就更不可能了。别急,进制之间的转换可以靠算的,而且有技巧 ,不需要死记硬背。

下面就来一一演示说明吧~

十进制转成二进制    除2取反

举个简单的例子:十进制数11转二进制

除2,将余数放到一边,得数继续除2,重复此操作

(最后余1就直接拿过去余数那里)

反序取即从下往上读(黄色箭头所示)于是十进制数11转成二进制就是1011 

二进制转十进制    权值法

将一个二进制数依次从末位开始乘2的n 次幂(n从0开始),再逐一相加。

举个例子:二进制1010转成十进制

 要乘本来那位的数字。二进制数1010转成十进制就是10。

十进制转八进制    除八反序取余法

具体操作跟十进制转二进制没什么区别,只是将除2换成了除8

举个例子:十进制123转八进制

八进制转十进制       权值法

具体操作跟二进制转十进制没有什么区别,只是把乘2的n次方改为乘8的n次方。

举个例子:八进制786转十进制

十进制转十六进制      除十六反序取余法

同上

举个例子:十进制数876转十六进制

注意 !!!十六进制中1~9用数字表示,而10~15用A~F表示,不能超过16,否则就是出错了。

十六进制转十进制     权值法

同上

举个例子:

好了,上面就是十进制转n进制的方法以及n进制转回十进制的方法。每次都得手算还是麻烦,说好的技巧呢???

好吧,下面就来介绍以下技巧吧~ 

首先我们来观察一下这个表

十进制           二进制              八进制           十六进制

1                        1                       1                   1

2                       10                      2                    2

3                       11                      3                    3

4                      100                     4                    4

5                      101                     5                    5

6                      110                     6                    6

7                      111                     7                    7

8                     1000                   10                   8

9                     1001                   11                   9

10                   1010                   12                   A

11                   1011                    13                  B

12                  1100                     14                  C

13                  1101                     15                   D

14                  1110                     16                   E

15                  1111                      17                  F

16                 10000                    20                10

................

发现没有,十进制2对应二进制10,4对应100,8对应1000,16对应10000。

也就是说2的n次幂,这个n就对应1后面0的个数。

十进制转成二进制的过程中我们可以把数字进行拆分(拆分成2、4、8、16...,直接分别对应10,100,1000,10000...)

例如:十进制数123可以拆分成64+32+16+8+2+1,直接转成二进制为1000000+100000+10000+1000+10+1=1111010.

反过来,二进制数也可以按照这种对应关系转化为十进制数

例如:10010拆为10000+10=16+2=18

二进制与八进制的转换:

二进制转八进制,将二进制数字3个分为一组(注意分组要从末位开始,即从右往左操作)然后按照上面说的拆分法(也可直接读出)八进制数。

八进制转二进制,按照拆分法操作。注意:不够三位的要在高位补0(也就是最左边)

若想实现八进制和十六进制之间的转换,都需要先转换为二进制,再做进一步的转化,简单来说就是得通过二进制这个中间人。

刚才举的例子全是整数之间的转换,那么问题来了,遇到小数怎么办呢?

好的,我们引入新的操作方案:

十进制小数转换成二进制:小数部分乘2,取整数,不足1的取0,每次相乘的都是小数部分。顺序看取整后转化的结果。

举个例子:

 注意!!!这时候就得从上往下读,读作011。

今天就先到这里啦,手写的例子有点丑,凑活着能看懂就行,关于数据的储存方式将会记在下一篇博客中。

知秋君
上一篇 2024-08-14 08:48
下一篇 2024-08-14 08:12

相关推荐