单片机汇编语言中二进制数的补数

一 无符号数:

八位无符号数的数值范围是0~255

例如:

255=1111 1111

11111111

0=0000 0000

0
0000000



二 有符号数:
八位数字中的最高位为符号位,“1”表示为负数,"0"表示为正数;由于最高位被表示正数或者负数的标志占用,所以,原来的8位只剩下7位来代表符号数的数值,这样一来,存储数值的大小将受到限制。原来8位存储无符号数的数值范围是0~255,而7位存储带符号数的数值范围变成了-128~+127
例如:
+127=0111 1111
01111111

例如:
-127=1000 0001

10000001


三 二进制的补数
-128~+127是如何来的那?
在数字系统中,使用二进制表示负数时,最高位放置的是符号,而数值的大小以二进制的补数形式存放在次高位到最低位。
而负数的二进制补数是这样得到的:
1.把负数的绝对值用二进制表示
2.将每一位取反
3.结果加1
注:2、3步中符号位不变。


例如:-2

1.负数取绝对值用二进制表示为:0000 0010
2.取反:1111 1101
3.加1:1111 1110

所以就变成了我们看到的-2的二进制表示为:-2=1111 1110,而不是-2=0000 0010

即:我们看到的负数的二进制实际上是其补数的表示方式!!!

例如:-126

1.负数取绝对值用二进制表示为:0111 1110
2.取反:1000 0001
3.加1:1000 0010

所以就变成了我们看到的-126的二进制表示为:-126=1000 0010,而不是-126=1111 1110

即:我们看到的负数的二进制实际上是其补数的表示方式!!!

正数用其二进制表示即可,不用像负数那样再进行补码转换!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值