原码、反码、补码及减法运算

简介: 原码、反码、补码及减法运算

负数采用补码的形式表示,这是为了硬件操作的方便,把减法也转换成加法来运算


引入反码、补码是为了解决减法的问题,换句话数就是解决负数的问题,正数不存在这些问题,所以它的反码补码就是它本身


正数的反码、补码都为本身

有符号的基本数据类型中,最高位0表示正数,最高位1表示负数

对于负数来讲,它的反码就是除去符号位取反,然后加1就得到了它的补码

1、原码与反码转换

公式


原码 => 反码 = 符号位不变,数值位分别“按位取反”
反码 => 原码 = 符号位不变,数值位分别“按位取反”

eg:


-3
= 10000011  原码
=>11111100  反码
=>10000011  原码

2、原码与补码转换

公式


原码 => 补码 = 反码 + 1 
补码 => 原码 = (补码 -1)取反码 = 补码的反码 + 1
补码的补码等于原码

eg:


-3
=10000011 原码
=11111100 反码
=11111101 补码
=11111100 补码-1
=10000011 (补码-1)取反码 == 原码
或者
=11111101 补码
=10000010 补码的反码
=10000011 补码的补码

补码的补码等于原码


例如:

byte型数据1个字节占8位


-7可以表示为10000111,最高位的1代表负号,它的反码是除去符号位各位取反为11111000,然后加1得到补码11111001


8的二进制表示为00001000


现在我们运算 8 - 7,在计算机并不是用8减去7,而是用8 + (-7),


也就是用00001000加上-7的补码11111001,两个有符号数相加,

如果符号位相加有近位就删去符号位的进位,得到00000001,也就是1.


-7 =》 0B10000111 => 反码0B11111000 => 补码0B11111001
8 - 7
= 8 + (-7)
= 0B00001000 + 0B11111001
= 0B00000001
= 1

相关文章
Hutool 工具:轻松校验手机号、身份证号、邮箱、统一社会信用代码、车牌号、车架号等信息,省时省心!
Hutool 工具:轻松校验手机号、身份证号、邮箱、统一社会信用代码、车牌号、车架号等信息,省时省心!
|
数据可视化 小程序 程序员
uni-app 配置编译环境与动态修改manifest.json参数
uni-app 配置编译环境与动态修改manifest.json参数
2787 0
|
6月前
|
机器学习/深度学习 数据采集 人工智能
如何赋予大语言模型以“灵魂”?深度解析增量预训练(Continual Pre-training)逻辑与实战代码
本文深入解析大模型增量预训练(CPT/DAP/CFT)三大路径,厘清RAG、微调与预训练的适用边界;结合eBay、AWS等实战案例,详解低成本高效CPT方法,并提供Unsloth框架下Qwen-3-4B金融领域实操代码。
1035 1
如何赋予大语言模型以“灵魂”?深度解析增量预训练(Continual Pre-training)逻辑与实战代码
|
存储 C语言
用加法器实现补码的加/减运算
用加法器实现补码的加/减运算
1211 0
|
缓存 监控 定位技术
|
弹性计算 缓存 安全
阿里云服务器4核16G配置整理:ECS实例规格、CPU型号及适用场景说明
阿里云ECS服务器4核16G配置提供了多种实例规格选择,如高主频通用型hfg8i(Intel第四代Xeon处理器,全核睿频3.9GHz)、经济型e、通用型g8i/g7等,满足不同业务需求。其中,hfg8i为官方推荐,适合高性能计算;经济型e在活动中更具性价比。各规格覆盖游戏服务器、数据库系统、数据分析、AI训练等多种场景,用户可根据实际需求选择合适的CPU型号与使用场景。更多详情可参考阿里云官方文档。
1460 10
|
JSON 监控 API
淘宝京东比价接口,商品详情AP接口概述
淘宝和京东作为国内两大主流电商平台,均提供了商品详情API接口,支持开发者获取商品信息以实现比价、数据分析等功能。
|
人工智能 搜索推荐 Android开发
Android系统版本演进:从1.0到最新,见证移动操作系统的蜕变####
本文以Android系统的迭代更新为线索,探讨了自2008年首个版本发布以来,Android在功能、性能、用户体验及安全性方面的显著进步。通过对比各代版本的亮点与改进,揭示了Android如何逐步发展成为全球领先的移动操作系统平台,并预测了未来发展趋势。 ####
1374 24
|
人工智能 文字识别 自然语言处理
AI开放平台介绍
【8月更文挑战第1天】AI开放平台介绍。
1013 2
|
API 开发工具 Android开发
安卓与iOS开发环境对比分析
本文将探讨安卓与iOS两大移动操作系统在开发环境中的差异,包括编程语言、工具链、API设计哲学、应用商店政策以及开发者社区支持等方面。通过比较分析,旨在帮助开发者更好地选择适合自己项目需求的平台,并理解不同环境下的开发挑战和机遇。