嵌入式—各种进制之间的关系及转换、原、反、补码

本文详细介绍了计算机中不同进制之间的转换,包括二进制、八进制、十六进制与十进制之间的相互转换,并详细阐述了二进制数的原码、反码和补码的概念,以及它们在数值计算中的应用。通过实例展示了如何进行转换和计算,强调了补码在计算机系统中用于简化加减运算的重要性。
摘要由CSDN通过智能技术生成

一、进位计数制及其转换

计算机能够处理数值、文字、声音、图像等信息。读者也许会问:为什么作为电子设备的计算机能处理那么多复杂的信息呢?实际上,当把这些信息转换成计算机能识别的形式就能进行处理。目前计算机中所有的信息都用“0”和“1”两个数字符号组合的二进制数来表示。

数值、图形、文字等各种形式的信息,需要计算机加工处理时,首先必须按一定的法则转换成二进制数。本节将首先以常用的十进制为出发点,来讨论二进制、八进制及十六进制的特点,然后介绍各种进制数之间的转换方法。

 1、 十进制数的表示

进位计数制是一种计数的方法,习惯上最常用的是十进制计数法。十进制数的每位数可以用下列10个数码之一来表示:0、1、2、3、4、5、6、7、8、9。十进制数的基数为10,基数表示进位制所具有的数码的个数十进制数的计数规则是“逢十进一”,也就是说,每位累计不能超过9,计满10就应向高位进1例如:十进制数按权展开,10i为该位数字的权

(1234.56)10 = 1 × 103 + 2 × 102 + 3 × 101 + 4 × 100 + 5 × 10–1 + 6 × 10–2

通常,对十进制数的表示,可以在数字的右下角标注10D

2、  二进制数、八进制数和十六进制数的表示

计算机中为了便于存储及计算的物理实现,采用了二进制。二进制数的基数为2,只有01两个数码,其计数规则是“逢二进一”,即每位计满2就向高位进1。它的各位的权是以2i表示的。

例如:

(101101)2 = 1 × 25 + 0 × 24 + 1 × 23 + 1 × 22 + 0 × 21 + 1 × 2= (45)10

通常,对二进制数的表示,可以在数字的右下角标注2B

二进制数运算规则简单,便于电路实现,它是数字系统中广泛采用的一种数制。但因二进制表示一个数时,所用的位数比用十进制数表示的位数多,人们读写很不方便,容易出错。因此常采用八进制或十六进制。C语言程序设计中就经常会用到这两种进制。

八进制数的基数是8,采用的数码是01234567。计数规则是“逢八进一”,它的各位的权是以8i表示的。通常,对八进制数的表示,可以在数字的右下角标注8O,但在C语言中是在数的前面加数字0来表示。例如,(1234)8就是表示一个八进制数,而不是十进制数1234,在C语言中它表示为01234

十六进制数的基数是16,采用的数码是0123456789ABCDEF。其中ABCDEF分别表示十进制数字101112131415。十六进制的计数规则是“逢十六进一”,它的各位的权是以16i表示的。通常,对十六进制数的表示,可以在数字的右下角标注16H,但在C语言中是在数的前面加数字0和字母X0X来表示。例如,(12AF)16就是表示一个十六进制数,在C语言中它表示为0X12AF

由此可得出:十进制、八进制、二进制与十六进制的特征对照表如表1-1所示。

1-1  二进制、八进制、十进制与十六进制的特征对照表

    

    

   

数的表示法

十进制

0123456789

逢十进一

(1234)10

二进制

01

逢二进一

(1101)2

八进制

01

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值