村长 发表于 2022-11-14 08:23:46

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


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

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

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

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

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

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

例如//8bit举例
1原码/反码/补码00000001http://cdn.u1.huluxia.com/g4/M01/F9/EF/rBAAdmJ7p9mAdFuSAAA6EwEYMVM944.png
http://cdn.u1.huluxia.com/g4/M01/F9/EF/rBAAdmJ7p9qABtgAAABJ72Dz62U778.png

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

6原码/反码/补码00000110

-1 原码10000001 反码11111110 补码11111111http://cdn.u1.huluxia.com/g4/M01/F9/EF/rBAAdmJ7p9qAeldjAACguAV-1VI217.png

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

-7 原码10000111 反码11111000 补码11111001
这里得到是F9 即为111111001http://cdn.u1.huluxia.com/g4/M01/F9/EF/rBAAdmJ7p9uAddZ3AAEN4ef0EK4161.png

那么我们怎么知道多少以内是正数,多少以内是负数呢?http://cdn.u1.huluxia.com/g4/M01/F9/EF/rBAAdmJ7p-aAZTdeAAT5Q19TQMM071.png


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

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

好了今天的就到这里[爱心][爱心][爱心]
http://cdn.u1.huluxia.com/g4/M01/F9/EF/rBAAdmJ7p-eAMAHCAAKzgdvdi0c759.jpg
页: [1]
查看完整版本: 【NB】和我一起学汇编之原码反码补码

村长黑科技是专业提供项目资源的服务的村长黑科技平台,如合购网赚项目、引流推广软件、软件程序开发等项目就选村长黑科
技平台参与或发布项目定制各种软件就来村长黑科技平台

本站中所有被研究的素材与信息全部来源于互联网,版权争议与本站无关。本站所发布的任何软件的破解分析文章、破解分析视频、补丁、注册机和注册信息,

仅限用于学习和研究软件安全的目的。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。学习破解分析技术是为了更好的完善软件可能存在的不安全因素,提升软件安全意识。所以您如果喜欢某程序,

请购买注册正版软件,获得正版优质服务!不允许将上述内容私自传播、销售或者其他任何非法用途!否则,产生任何法律责任,一切后果请用户自负,与本网站无关!如有侵权或非法用途请举报!请发送到邮箱:cxphj8@foxmail.com

《意见反馈》或《截图指定页面备注》发送到邮件,收到后24小时内删除,禁止用户学习使用关掉用户【学习使用权】!