进制的转换

文章详细介绍了在Linux系统中如何使用bc命令进行进制转换,包括二进制、八进制、十六进制与十进制之间的转换。同时,它阐述了计算机中的二进制表示,特别是负数的原码、反码和补码的概念,以及如何通过补码进行加减运算。此外,文章还讨论了减法如何转化为加法,并通过实例展示了计算过程。
摘要由CSDN通过智能技术生成

进制转换在liunx里可以进行用bc命令转换

bc是小计算器

obase=2       (o是输出 输出的是2进制)

ibase=2        ( i是输入 输出的是2进制)

 

进制、原码、反码、补码的计算

  • 二进制、八进制、十六进制转换到十进制计算

概念:

  1. 二进制、八进制、十六进制转换到十进制用的是算位权(图a)(图b)(图c)
  2. 任何数的0次方都得1
  3. 0乘任何数都0
  4. 次方计算;例:8的2次方是8X8、8的3次方是8X8X8,以此类推
  5. 二进制:0、1,逢2进1
  6. 八进制:0、1、2、3、4、5、6、7,逢8进1
  7. 十六进制:0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f。(a、b、c、d、 e、f分别代表10到15)
  8. 二进制低四位用8421来计算,例如1110用8421计算,8对应二进制最高位的1,1对应二进制最低位的0。8加4加2得14,二进制最低位是0,可以不进行运算。这是一种规律,可以忽略位权进行快速运算。

十进制、二进制、八进制、十六进制来表示0到15

 

         图a

图b 

 图c

  • 十进制转二进制、八进制、十六进制

概念:

  1. 十进制转二进制,除2求余数,直到无法除2,最后的商是最高位加上其他余数就是二进制 。(图d)
  2. 十进制转八进制,除8求余数,直到无法除8,最后的商是最高位加上其他余数就是八进制。(图e)
  3. 十进制转十六进制,除16求余数,直到无法除16,最后的商是最高位加上其他余数就是八进制。(图f)

 图d

 图e

 图f

注意事项:

8进制转16进制,需要先将8进制转为10进制,再转为16进制

2进制转16进制,需要先将2进制转为10进制,再转为16进制

16进制转2进制,需要先将16进制转为10进制,再转为2进制

8进制转2进制,需要先将8进制转为10进制,再转为2进制

10进制是进制转换之间的跳板

二.计算机中如何进行减法,加法运算

概念:

  1. 加法和减法是两种物理电路,为了简化电路结构,将计算机设计的只做加法运算,不能直接做减法运算,只能将减法变为加法运算,将减法变为加法的运算的关键在于补码,计算机利用补码方式将减法变为加法。

 

  1. 计算机存储的最小单位是1byte,1byte=8bit 在计算机中8用(00001000)来表示,保证必须有有一个完整的字节。

 

3.负数的二进制表示方法,以及原码变反码,反码变补码得计算

(1)二进制负数的表示,-8是10001000,最高位是1为负数,是0为正数。

 

 

(2) 10001000是-8得原码,在计算机中只储存补码,所以要将原码变反码,反码变原码。

原码变反码,符号位不变,其余按位取反

反码变补码,用反码+1,1+1进位得0,0+1不进位得1,0+0=0

 

4.正数的二进制表示方法

二进制的正数原码、补码、反码是一样的,以下以333的原码为例子

 

5.计算机中二进制进行加减运算

计算机中进行加法,减法运算是要用补码进行加减运算

  1. 加法运算52+17
  2. 减法运算100-45等价于100+(-45)的补码,计算结果是00110111,

去掉第9位才是结果。

 

小数-大数计算 55-89 等价于55的补码 +(-89)的补码,得出的结果是补码,但是高位没有进位,需要补码变反码,反码变原码才是最终的结果。

 

负数的小数-负数的大数-82-111等价于-82的补码 +(-111)的补码

结果去掉第9位是 +63,如果不去掉第9位需要给最高位补1,补够2个字节求出

原码后结果是 -193。

 

最终结果和去掉不去掉第9位关系不大,主要是看在内存中存放几个字节,只有放在1个字节里会出错,放在2个字节、3个字节、4个字节等等得 -193,所以-193才是正确结果

 

小结:

  1. 计算机只储存二进制
  2. 计算机存放数据的最小单位是字节(8位0000 0000)
  3. 计算机是只能进行加法,减法要转换为加法
  4. 计算机中只存放补码

正数的原码-反码-补码都是一样的,负数的反码-补码要分别计算

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值