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

【计算机组成原理】原码 反码 补码 移码的转换

原码 反码 补码 移码的转换

这三种机器码都是二进制数据的表现形式,可以表现正数和负数。

原码是可以直接表现出数据的正负和大小。

正数的原码、反码和补码都是相同的。

反码用于原码和补码的转换的功能。

而补码可以在计算机硬件内更好地实现一些带负号的运算。

使用补码可以使用8位二进制表示-27 ~27-1 的整数范围。

移码可以表现出数值的大小。

简记:符号不变,数值取反 ,末位加一,符号取反。

一、原码

原码由符号位和数值位表示。符号位为最左边的位,为0表示正数,为1表示负数。

最左边是符号位为0,剩余7位是数值位。

十进制整数14使用原码表示为:

# 最左边是符号位为0,剩余7位是数值位。
0000 1110

十进制整数-14使用原码表示:

# 最左边是符号位为1,剩余7位是数值位。
1000 1110

二、原码转反码

反码也是由符号位和数值位表示。符号位为最左边的位,为0表示正数,为1表示负数。

由于正数的原码与反码相同,这里仅讨论负数的转化。

符号位不变,数值位取反。

十进制整数-14使用原码表示:

# 最左边是符号位为1,剩余7位是数值位。
1000 1110

十进制整数-14使用反码表示:

# 最左边是符号位为1,剩余7位是数值位相较于原码取反。
1111 0001

三、原码转反码转补码

补码也是由符号位和数值位表示。符号位为最左边的位,为0表示正数,为1表示负数。

由于正数的原码与补码相同,这里仅讨论负数的转化。

符号不变,数值取反 ,末位加一。

十进制整数-14使用原码表示:

# 最左边是符号位为1,剩余7位是数值位。
1000 1110

十进制整数-14使用反码表示:

# 最左边是符号位为1,剩余7位是数值位相较于原码取反。
1111 0001

十进制整数-14使用补码表示:

# 最左边是符号位为1,剩余7位是数值位相较于补码加一。
1111 0010

四、原码转反码转补码转移码

移码可以直观的反应出其大小。

正数只需要进行末位加一操作。

负数需要进行四次操作:

符号不变,数值取反 ,末位加一,符号取反。

十进制整数-14使用原码表示:

# 最左边是符号位不变,剩余7位是数值位。
1000 1110

十进制整数-14使用反码表示:

# 最左边是符号位不变,剩余7位是数值位相较于原码取反。
1111 0001

十进制整数-14使用补码表示:

# 最左边是符号位不变,剩余7位是数值位相较于反码加一。
1111 0010

十进制整数-14使用移码表示:

# 最左边是符号位相较于补码取反,剩余7位是数值位不变。
0111 0010

各种码表示的数值大小

这里由于0有两种表现形式,因此将-0表示为-128,这样数据范围就为-128~127。

十进制(原码)原码反码补码移码
-0(-128)1000 00001111 11111000 00000000 0000
-2^7-11111 11111000 00001000 00010000 0001
-2^7-21111 11101000 00011000 00100000 0002
-21000 00101111 11011111 11100111 1110
-11000 00011111 11101111 11110111 1111
+00000 00000000 00000000 00001000 0000
10000 00010000 00010000 00011000 0001
20000 00100000 00100000 00101000 0010
2^7-20111 11100111 11100111 11101111 1110
2^7-10111 11110111 11110111 11111111 1111

相关文章:

  • CVPR 2024第三弹:李飞飞教授惊喜亮相,CVPR之家乐队火爆演奏惊艳全场
  • 接口异步回调
  • python从入门到精通1:注释
  • 哥伦比亚大学突破性的方法- Diffusion Policy:利用Action Diffusion进行视觉运动策略学习
  • 【PL理论】(34) 类型系统:不完备性 | 为什么推导树推导失败? | 实现类型系统 | 调整到类型系统 | 思考:强制程序员写类型还是自动推断类型?
  • 猫头虎分享已解决Bug || **Mismatched Types**: `mismatched types`
  • 数据结构和算法笔记6:KMP算法
  • Flink Catalog
  • 计算机网络:路由协议
  • 备战蓝桥杯————k个一组反转单链表
  • 顶顶通呼叫中心中间件-如何使处于机器人话术中的通话手动转接到坐席分机上讲解(mod_cti基于FreeSWITCH)
  • 【GB28181】wvp-GB28181-pro部署安装教程(Ubuntu平台)
  • OpennVINS运行、评估笔记
  • 中国中封、三边封两用制袋机行业市场发展趋势分析
  • 以太坊质押时代到来,开发者机遇何在?
  • JVM之垃圾收集器
  • 第三篇文章:Docker命令
  • 秋招 2022 年面试不用愁,速看 BATJ 最新 Java 面试题整理合集
  • react面试题
  • STM32F103移植FreeRTOS必须搞明白的系列知识---3(堆栈)
  • 人脑能否重启?
  • 【微信小程序】创建自己的小程序
  • Jmeter基于Java请求的二次开发(结合java代码测Dubbo接口)
  • Redis哨兵模式与Redis缓存穿透、击穿和雪崩
  • python——全局解释器锁(GIL)
  • 武汉市服务业领军企业认定条件、流程及申报政策奖励补贴标准
  • 我的第一篇技术博客 —— 梦的开始
  • 变分自编码器VAE的直观理解与原理推导 及 问题记录
  • 【python】准点跑路人必备小程序~ 不信你用不到
  • 10个常见的使用场景,助你从 Vue2 丝滑过渡到 Vue3 !
  • Java线程安全的时间类
  • 驱动开发:内核枚举IoTimer定时器