进制转换

导引:

        生活中一周可用7进制表示,一分钟可用60进制表示,断电和通电可用0和1二进制表示。

预备知识

         所有数字在计算机底层都是以二进制形式存在的,并且以补码的形式保存所有的整数。原码直接将一个数值换算成二进制数正数的补码和原码完全相同,负数的补码是其反码加1;反码是对原码按位取反,最高位保持不变(最高位是符号位,如果补码的最高位是1,该数是负数;如果补码的最高位是0,该数是负数)。

十进制计数规则

        ① 十进制用十个数计数,基数是10

        ② 用0,1,2,3,4,5,6,7,8,9表示

        ③ 逢10进1(低位变成0,高位加1),借1当10

         比如66-59,个位上6-9不够减,向高位借1当做10,即(10+6)-9 = 7,然后高位6-1-5 = 0,所以结果是7。

二进制计数规则

         ① 用二个数表示,基数是2

         ② 用0,1表示

         ③ 逢2进1(低位变成0,高位加1),借1当2

            比如0-1不够减,把0看成是00向高位借1当做2,即(2+0)-1 = 1,只不过二进制中没有负数的说法。

           十进制从右往左依次是一位、十位、百位、千位、万位...

           二进制从右往左依次是一位、二位、四位、八位、十六位...(这个主要是用十进制的读法)

如下图所示:

十进制二进制十进制二进制
0091001
11101010
2    10111011
311121100
4100131101
5101141110
6110151111
71111610000
10001710001

       ④ 运算规则

         1+0 = 1;1+1 = 10(逢2进1);0+0 = 0

         1-1 = 0;1-0 = 1;0-1 = 1(借1当2)

十进制和二进制的转化

  1.  十进制正整数转化为二进制数(相当于求该数的补码)

          除二取余,然后倒序排列,高位补零。也就是说,将正的十进制数除以二,得到的商再除以二,依次类推直到商为零或一时为止,然后在旁边标出各步的余数,最后倒着写出来,高位补零。

         计算机内部表示数的字节单位是定长的,如8位,16位,或32位。所以,位数不够时,高位补零。这里用8位来表示计算机内部的字节单位

如:(10)27  =  (2)11011

 

2.  十进制负整数转化为二进制数

如(10)-27  =  (2)11100101

      由1可知27的原码:  0 0 0 1 1 0 1 1

      按位取反得反码:  1 1 1 0 0 1 0 0

                         补码:  1 1 1 0 0 1 0 1

 3.  正整数二进制转化为十进制数

      首先将二进制数补齐位数,首位如果是0就代表是正整数,如果首位是1则代表是负整数。   先看首位是0的正整数,补齐位数以后,将二进制中的位数分别将下边对应的值相乘,然后相加得到的就为十进制。

      如:(2)11011  = (10)27

     首先补齐位数得:00011011(高位是0,表示正数)

4.  负整数的二进制转化为十进制

     如:(2)10110110  = (10)-74

     因为已经是8位了,高位就不必再用0补齐,最高位是1,则该数是一个负数

     补码:10110110

     反码:10110101

     原码:01001010

八进制和二进制的转化

  1.   二进制转化为八进制

          3位二进制数按权展开相加得到1位八进制数。(注意事项,3位二进制转成八进制是从右到左开始转换,不足时补0)。

          例如:(2)110010110  = (8)626

2.  八进制转化为二进制

      一个八进制的位拆分成一个三位的二进制数

      八进制数通过除2取余法,得到二进制数,每个八进制位对应3个二进制位,不足时在最左边补零。

      例如:(8)256  = (2)10101110

 

二进制与十六进制的转换

1.  二进制转十六进制

     与二进制转八进制方法近似,八进制是取三合一,十六进制是取四合一。(注意事项,4位二进制转成十六进制是从右到左开始转换,不足时补0)

      例如:(2)1001 1100 1101  = (16)9CD

2.  十六进制转二进制

     十六进制数通过除2取余法,得到二进制数,每个十六进制位对应4个二进制位,不足时在最左边补零。

     一个十六进制的位拆分成一个四位的二进制数

     例如:(16)238 = (2)10 0011 1000

十进制与八进制与十六进制之间的转换

1.  十进制转八进制或者十六进制有两种方法

      第一:间接法—把十进制转成二进制,然后再由二进制转成八进制或者十六进制。

      第二:直接法—把十进制转八进制或者十六进制按照除8或者16取余,直到商为0为止。

      例如: (10)245  = (8)365

                  (10)265  = (16)109

2.  八进制或者十六进制转化为十进制

     把八进制、十六进制数按权展开、相加即得十进制数。

     例如:(8)234  = (10)156

     (16)35  = (10)53

十六进制与八进制之间的转换

     八进制与十六进制之间的转换有两种方法

     第一种:他们之间的转换可以先转成二进制然后再相互转换。

     第二种:他们之间的转换可以先转成十进制然后再相互转换

     进制的对应表:

十进制二进制八进制十六进制十进制二进制八进制十六进制
000091001119
111110101012A
2102211101113B
3113312110014C
41004413110115D
51015514111016E
61106615111117F
7111771610000100

10

81000108171000110111

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值