当前位置: 首页 > news >正文

原码、反码、补码在汇编中的应用

原文章:知乎

原码和二进制类似,不过它有符号位。正数符号位为0,负数为1 。

例:4=0000 0100 ,-4=1000 0100

原码是人脑最容易理解和计算的表示方式。

但是这在计算机中计算就出了问题,这两个(4和-4)的原码相加为1000 1000(-8),这个结果并不对。

于是反码就出现了:

4(反)=0000 0100(正数的反码和原码一样)

-4(反)=1111 1011(负数的反码是将原码中,除符号位以外,每一位取反)

于是4+(-4)=0000 0100(4反)+1111 1011(-4反)=1111 1111(0反)

但是这还有一个问题:0怎么办?0不是正数也不是负数,0的反码怎么办?这就用到补码了。

于是补码的出现,解决了0的符号问题以及0的两个编码问题:

1-1 = 1 + (-1) = [0000 0001]原+ [1000 0001]原= [0000 0001]补+ [1111 1111]补= [1 0000 0000]补=[0000 0000]补=[0000 0000]原注意:进位1不在计算机字长里。

这样0用[0000 0000]表示,而以前出现问题的-0则不存在了。而且可以用[1000 0000]表示-128:-128的由来如下:

(-1) + (-127) = [1000 0001]原+ [1111 1111]原= [1111 1111]补+ [1000 0001]补= [1000 0000]补

http://www.lryc.cn/news/199483.html

相关文章:

  • 【红日靶场】vulnstack5-完整渗透过程
  • 嵌入式平台的电源总结
  • @Binds methods must be abstract 报错指南
  • 自定义反序列化类将LocalDate时间格式转为 LocalDateTime
  • MySQL JSON_TABLE() 函数
  • 【MATLAB第80期】基于MATLAB的结构核岭回归SKRR多输入单输出回归预测及分类预测模型
  • Qt消息对话框的使用
  • spring的Ioc、DI以及Bean的理解
  • 倒计时 天时分秒
  • Spring篇---第六篇
  • 【unity小技巧】适用于任何 2d 游戏的钥匙门系统和buff系统——UnityEvent的使用
  • 爬虫ip如何加入到代码里实现自动化数据抓取
  • 在win10上安装配置Hadoop的环境变量
  • MAX插件CG Magic怎么云渲染?操作方法已整起!
  • 尝试使用jmeter-maven-plugin
  • navigator.userAgent.toLowerCase区分设备,浏览器
  • 防火墙操作:开放端口ICMP时间戳请求漏洞修复
  • MySQL配置环境变量和启动登录
  • 救济金发放(The Dole Queue, UVa 133)rust解法
  • oracle实验四
  • 数据结构-堆排序Java实现
  • C#进阶——反射(Reflection)
  • Oracle 运维篇+应用容器数据库的install、upgrade、patch、uninstall
  • Affinity Publisher for Mac/Windows最新中文下载 排版神器
  • Mac文件对比同步工具 Beyond Compare 4.4.7
  • 技巧 | 如何解决 OBS 系统声音无法捕获问题 | Mac
  • 从头开始机器学习:逻辑回归
  • 插入排序 算法
  • “揭秘!如何通过京东商品详情接口轻松获取海量精准商品信息!“
  • 已经有多人中招,不要被AI换脸技术骗了!