补码[基础]

简介:

1、在计算机系统中,数值一律用 补码 来表示(存储)。

也就是说:CUP在处理数值数据的时候,是用补码在计算。(而不是原码!)

主要原因:
A 使用补码,可以将符号位和其它位统一处理;
B 同时减法也可按加法来处理;
C 两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃;

2、补码与原码的转换过程几乎是相同的。
求给定数值的补码表示分以下两种情况:

(1)正数的补码:与原码相同。
【例1】+9的补码是00001001。


(2)负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。
【例2】求-7的补码。
因为给定数是负数,则符号位为“1”。
后七位:+7的原码(0000111)→按位取反(1111000)→加1(1111001)
所以-7的补码是11111001。

已知一个数的补码,求原码的操作分两种情况:
(1)如果补码的符号位为“0”,表示是一个正数,其原码就是补码。
(2)如果补码的符号位为“1”,表示是一个负数,那么求给定的这个补码的补码就是要求的原码

【例3】已知一个补码为11111001,则原码是10000111(-7)。
因为符号位为“1”,表示是一个负数,所以该位不变,仍为“1”。
其余七位1111001取反后为0000110;
再加1,所以是10000111。

在“原码、反码、补码”中,有一个很重要的概念“”。

我在这里稍微介绍一下“模”的概念:

“模”是指一个计量系统的计数范围。如时钟等。
计算机也可以看成一个计量机器,它也有一个计量范围,即都存在一个“模”。

例如:
时钟的计量范围是0~11,模=12。

表示n位的计算机计量范围是0~2^(n) -1,模=2^(n)。

“模”实质上是计量器产生“溢出”的量,它的值在计量器上表示不出来,计量器上只能表示出模的余数。任何有模的计量器,均可化减法为加法运算。

例如: 假设当前时针指向10点,而准确时间是6点,调整时间可有以下两种拨法:
一种是倒拨4小时,即:10-4=6
另一种是顺拨8小时:10+8=12+6=6

在以12模的系统中,加8和减4效果是一样的,因此凡是减4运算,都可以用加8来代替。

对“模”而言,8和4互为补数。实际上以12模的系统中,11和1,10和2,9和3,7和5,6和6都有这个特性。

共同的特点是两者相加等于模。

对于计算机,其概念和方法完全一样。n位计算机,设n=8, 所能表示的最大数是11111111,若再加1称为100000000(9位),但因只有8位,最高位1自然丢失。又回了00000000,所以8位二进制系统的模为2^8(注2)。 在这样的系统中,减法问题也可以化成加法问题,只需把减数用相应的补数表示就可以了。把补数用到计算机对数的处理上,就是补码。

注1:n位二进制,最高位为符号位,因此表示的数值范围-2^(n-1) —— 2^(n-1) -1,所以模为2^(n-1)。

注2:上面提到的8位二进制模为2^8是因为最高位非符号位,表示的数值范围为0 —— 2^8-1。




本文转自钢钢博客园博客,原文链接:http://www.cnblogs.com/xugang/archive/2010/09/04/1817962.html,如需转载请自行联系原作者

相关文章
|
4月前
|
人工智能 Linux API
OpenClaw新手正确入门指南:云端/本地部署、先跑通高频动作+免费模型配置流程
很多人初次接触OpenClaw(Clawdbot)时,都会陷入同一个误区:疯狂收集技能、对接各种平台、搭建复杂流程,却始终没有让工具真正解决一个自己每天都会遇到的实际问题。新鲜感带来的进度幻觉,会让人误以为安装越多、配置越复杂就越厉害,可真正使用时却发现流程混乱、响应不稳定、无法稳定复现结果。OpenClaw的核心价值从来不是“能做多少事”,而是“能稳定做好一件事”。对于新手而言,正确的入门方式不是堆砌功能,而是选定一个高频动作,把上下文、执行步骤、输出格式、校验规则全部理顺,让工具形成可重复、可依赖的稳定工作流。在此基础上,再进行技能扩展、流程串联、多平台部署,才能真正发挥这款开源AI代理工
366 4
|
9月前
|
自然语言处理 安全 API
2025阿里云双11特惠:文本短信低至 0.02 元/条,短信认证套餐包3.99元/年
2025年阿里云双11金秋云创季开启!短信认证套餐包新人专享7折,免资质签名即用即发;短信服务新客低至0.02元/条,老客最高减5850元,验证短信秒级触达率99%。
897 1
|
6月前
|
人工智能 中间件 API
【架构最佳实践】大模型落地的隐形英雄:为何企业级应用必须引入“AI调度官”?
本文提出“AI调度官”架构,作为连接业务与模型的智能中间件,在阿里云环境下实现模型路由、流量分发与成本优化。通过意图识别、动态调度与熔断降级,平衡智能与成本,助力企业构建高性价比的生成式AI应用。
396 3
|
6月前
|
人工智能 并行计算 算法框架/工具
英伟达三大AI法宝:CUDA、NVLink、InfiniBand——构筑AI时代的算力基石
英伟达三大AI法宝——CUDA(编程层)、NVLink(芯片互连)、InfiniBand(系统互连),构成软硬协同的全栈加速体系:CUDA释放GPU通用算力,NVLink实现多卡高速协同,InfiniBand支撑万卡集群高效通信,共同筑就AI时代的算力基石。(239字)
800 1
|
6月前
|
机器学习/深度学习 人工智能 算法
大模型进化论:深度拆解原理与合成数据,开启你的AI工业化
本文深入探讨大模型落地痛点——高质量数据匮乏,提出“合成数据+参数高效微调”双引擎解决方案。从原理到实战,详解如何用LoRA技术与合成数据训练垂直领域AI,助你打造专属“行业专家”模型。
478 0
|
8月前
|
运维 监控 JavaScript
Nginx报警问题排查(从零开始快速定位与解决常见报警)
本文教你如何排查Nginx常见报警,如502错误、连接超时等。通过查看错误日志、检查配置语法、验证后端服务状态及优化监控策略,快速定位并解决问题。适合运维与开发新手,助你成为排障高手。关键词:Nginx报警排查、错误日志、配置错误、服务器监控。
|
Web App开发 JSON 测试技术
API测试工具集合:让接口测试更简单高效
在当今软件开发领域,接口测试工具如Postman、Apifox、Swagger等成为确保API正确性、性能和可靠性的关键。Postman全球闻名但高级功能需付费,Apifox则集成了API文档、调试、Mock与自动化测试,简化工作流并提高团队协作效率,特别适合国内用户。Swagger自动生成文档,YApi开源但功能逐渐落后,Insomnia界面简洁却缺乏团队协作支持,Paw仅限Mac系统。综合来看,Apifox是国内用户的理想选择,提供中文界面和免费高效的功能。
|
安全 jenkins 网络安全
在配置 Gitee 时需要注意什么?
通过注意以上这些方面,可以更好地配置Gitee,保障项目的代码管理安全、高效、有序,为团队的协作开发和代码上线流程提供有力的支持。
|
存储 Ubuntu Shell
Ubuntu 使用deepin-wine源移植
1、详细看 https://github.com/zq1997/deepin-wine 2、添加仓库 首次使用时,你需要运行如下一条命令将移植仓库添加到系统中。 wget -O- https://deepin-wine.i-m.dev/setup.sh | sh 3、应用安装 自此以后,你可以像对待普通的软件包一样,使用apt-get系列命令进行各种应用安装、更新和卸载清理了。 比如安装微信只需要运行下面的命令。 sudo apt-get install com.qq.weixin.deepin 将com.qq.weixin.deepin替换为下列包名,可以继续安装其他应用:
874 1

热门文章

最新文章