【NB】和我一起学汇编之原码反码补码

[复制链接]
查看905 | 回复0 | 2022-11-14 08:23:46 | 显示全部楼层 |阅读模式

书接上回,上次讲了有符号数正数的编码规则,这回我们说有符号数负数的编码规则。

在说这之前我们要先明白原码反码和补码

负数的编码规则(负数是按补码存储的)

原码:最高位为符号位,其余各位为这个数本身的绝对值

反码:正数的反码与原码相同
          负数:符号位为1,其余为对原码取反

补码:正数的补码与原码也相同
          负数 符号数为1,其余位对原码取反,再加1

例如//8bit举例
1  原码/反码/补码00000001


这里看到图中的数据为01.这个01是十六进制,那么转为二进制就是00000001 相符。(6也同理)

6  原码/反码/补码00000110

-1 原码10000001 反码11111110 补码11111111

这里看到内存中为FF,转为二进制就是11111111

-7 原码10000111 反码11111000 补码11111001
这里得到是F9 即为111111001

那么我们怎么知道多少以内是正数,多少以内是负数呢?


具体看这个图(一字节8bit举例,别的单位同理),当存储的是无符号数是,可以存00到FF
当存储的是有符号数时,00到7F是正数,80到FF为负数

就比如是一个doubleword(双字,32bit)
那么就是00000000到7FFFFFFF是正数,80000000到FFFFFFFF是负数

好了今天的就到这里[爱心][爱心][爱心]

aaaa
村长黑科技是专业提供项目资源的服务的村长黑科技平台,如合购网赚项目、引流推广软件、软件程序开发等项目就选村长黑科技平台,参与或发布项目定制各种软件就来村长黑科技平台
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则