有符号数的原码、反码、补码详解

(王道计算机组成原理)第二章数据的表示和运算-第一节:数制与编码 2(定点数的编码表示) 本文介绍了计算机中数值的表示方法,重点讨论了真值、机器数、定点表示、原码、反码、补码和移码等概念。真值是日常生活中带有符号的数值,而机器数则是计算机内部对数值的数字化编码表示,包括原码、补码和反码等。定点表示法将小数点位置固定,分为定点整数和定点小数。原码是最直观的表示方法,反码是原码转换为补码的中间形式,补码则通过加法代替减法来简化运算。移码是在补码基础上对符号位取反的编码方式,仅用于表示整数。这些表示方法在计算机中用于统一处理符号和数值的运算,确保计算的正确性和高效性。 阅读详情

有符号数 signed %d

符号位+数值位(例如:int i = +7;)

int 类型占4个字节,1个字节占8个位,int占32个比特位

7 根据8421码得到二进制原码

(0b00000000000000000000000000000111)

int 类型的表数范围:

计算机中存储有符号数的时候是按照补码的形式存进去的。

正数的原码、反码、补码都一样

负数的原码、反码、补码就不一样了

-7的原码(计算机是原码变成补码存进去)

(0b10000000000000000000000000000111)


-7:存储到计算机的流程

原码:0b10000000000000000000000000000111

反码:-1=0b10000000000000000000000000000110

补码:0b11111111111111111111111111111001(符号位保持不变)

-7:拿取出来的流程

​ 补码:0b11111111111111111111111111111001

​ 反码:-1=0b11111111111111111111111111111000

​ 原码:0b10000000000000000000000000000111(符号位保持不变)


内存机构的最小寻址单位——字节,Byte,

1Byte==8bit(00000000)1字节最大的数是(11111111)对应的10进制数是:

根据8421码对应的数进行相加

128+64+32+16+8+4+2+1

得到255


signed int存储的值范围

最大值:4个字节 32个最大的比特位

最大值原码:11111111111111111111111111111111

反码:-1=00000000000000000000000000000000

最少值的补码:01111111111111111111111111111111=2^31-1

最少值:4个字节 32个最小的比特位

最少值原码:00000000000000000000000000000000

反码:-1=10000000000000000000000000000000 (减去1只是将符号位反转)

最大值的补码:11111111111111111111111111111111=-2^31-1

​

结论:

      反码是将原码进行减一操作,补码,原码都可以是进行反转操作

计算机存储数据流程将原码——反码——再补码(存储是补码是反转)

计算机拿取数据流程将补码——反码——再原码(拿取是原码是反转)

最新Win10离线安装.NET Framework 3.5的方法(附离线包2022/3/22) win10 .net framework 3.5离线安装 阅读详情

相关推荐

高德地图 搜索和点击定位

高德地图vue

weixin_45474673的博客 1943

带符号的数(补码)

所有的数据在java的底层都是以二进制数据的补码形式展示的 原码,反码,补码 表示5和-5: 原码:正数的符号位是0,负数的符号位是1 符号位 数值位 5 0 0000101 -5 1 0000101 ...

压缩疯雷的博客 5124

微信小程序 | 小程序开发

事实上,目前小程序在我们生活中已经随处可见(特别是这次疫情的推动,不管是什么岗位、什么年龄阶段的人,到哪都需要打开健康码)WePY是由腾讯开源的,一款让小程序支持组件化开发的框架,通过预编译的手段让开发者可以选择自己喜欢的开发风格去开发小程序。Mpvue是一个使用Vue开发小程序的前端框架,也是 支持 微信小程序、百度智能小程序,头条小程序 和 支付宝小程序;微信小程序、支付宝小程序、淘宝小程序、抖音小程序、头条小程序、QQ小程序、美团小程序等。,其他平台的小程序往往是平台本身的一些公司或者顺手开发的。

CoderHing的博客~ 1万+

如何计算一个有符号数的补码表示?

按照【谭浩强.C程序设计(第三版).北京:清华大学出版社,2005】的第40页至第41页所述,求一个负数的补码的方法如下: 【例】求-10的补码的方法如下: 1)取-10的绝对值10; 2)10的绝对值的二进制形式为1010; 3)对1010取反得1111 1111 11

彬彬有礼的专栏 1万+

Oracle19c安装,基本配置教程(超详细)

安装有出错的风险,卸载也是比较麻烦的,所以先提前设置一个还原点,在windows中的步骤如下,如果对自己有信心,可以直接跳过该部分开始安装oracle在设置中进入创建还原点的界面开始创建还原点上面已经成功创建了还原点,如果安装oracle时出现问题,自己也无法解决,恢复到安装之前即可,恢复步骤如下经过上面的步骤,Oracle我们就能够正常使用了,我们就使用自己在sql plus里面创建的账号即可,创建的表会默认存放在我们自己创建的表空间里面。

秃头披风侠的博客 7万+

Tomcat启动过程中cmd窗口(控制台)中文乱码的问题

tomcat启动时,启动过程日志中文乱码的处理方法。

寻码启示 1942

有符号数二进制补码加减运算

在电路设计时,为了简化设计,加减法电路用同一个电路实现。这就需要参与运算的操作数用补码表示。        对于正数,原码,反码,补码相同。       而对于负数,原码符号位为1,其余各位此数的绝对值;反码是在除去符号位的基础上取反;补码则为除去符号位,在反码的基础上加1。若反码数值位加1超出数值位表示的范围,不管进位,最高位依旧是符号位。例如-8的原码为11000,反码10111,补码11

xingzhe22222的博客 1万+

python-调用动态链接库dll/so的方法

使用python ctyeps CDLL来调用linux下的so动态链接库或windows下的dll动态链接库

XIAOXIANG233233的博客 3662

补码概念、补码公式以及MATLAB求补码方法

求负数补码公式(x为负数二进制数,N为位宽)        (1) 或者       X补码 = 2^N + X     (2)    (X为十进制数,得到十进制X补码,再将其转换为二进制形式)  补码 = 2的N次方 - (负数绝对值的二进制表示) 补码 + 负数绝对值的二进制表示 = 2的N次方 对于位宽为N的正数x,我们要求−x的补码就是求正数的原码,所以我们得到在MATLAB里...

Gdadiao123的博客 1万+

告别水印!Vue3项目集成Stimulsoft.Reports.js完整配置与激活指南

本文详细介绍了如何在Vue3项目中集成Stimulsoft.Reports.js,提供从授权策略到性能优化的完整解决方案。通过模块化架构设计和现代化引入方式,帮助开发者高效实现专业级报表功能,同时避免版权风险和水印问题,特别适合中小型项目需求。

weixin_33701294的博客 431

29、集成电路测试技术解析

本文深入解析了集成电路测试技术,涵盖定制电路测试资源与策略、混合模拟/数字电路测试方法、数字测试模式生成难点与解决方案,以及可控性和可观测性的核心概念。同时详细讨论了固定故障、桥接故障和开路故障等主要故障模型及其检测方法。在测试技术的综合应用与优化方面,提出了合理配置测试资源、优化测试模式和设计测试流程的策略。最后展望了测试技术的发展趋势,包括集成化测试、自动化测试和智能化测试。通过全面掌握这些测试技术,可以有效提高集成电路的质量和可靠性,推动集成电路产业的发展。

work3的博客 204

记忆减退之-----取某个数的补码 问题

自己的简单理解-----所谓补码

XUXUECHEN的专栏 958

Python3实现基于ARIMA模型来预测茅台股票价格趋势

ARIMA(Autoregressive Integrated Moving Average)模型是一种广泛使用的时间序列分析方法,它可以用于对未来的数据进行预测。ARIMA模型由自回归模型(AR模型)、差分整合模型(I模型)和移动平均模型(MA模型)组成,因此也被称为ARIMA(p,d,q)模型。其中,p表示自回归阶数,d表示差分阶数,q表示移动平均阶数。具体来说,ARIMA模型可以通过以下步骤进行建模:数据预处理:对时间序列进行平稳性检验,如果不满足平稳性,则进行差分操作。

m0_64336780的博客 2万+

C语言系列(二)有符号数和无符号数详解 (原码/反码/补码)

转自:https://blog.csdn.net/u011974987/article/details/521427941、你自已决定是否需要有正负:就像我们必须决定某个量使用整数还是实数,使用多大的范围数一样,我们必须自已决定某个量是否需要正负。如果这个量不会有负值,那么我们可以定它为带正负的类型。在计算机中,可以区分正负的类型,称为有符类型(signed),无正负的类型(只有正值),称为无符类...

Fybon的专栏 1688

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

数据的存储,数据类型,大端小端

c进阶第一堂课主要学习数据的存储,其中包括: 1. 数据类型详细介绍 前面我们已经学习了基本数据类型,对各数据类型有了基本了解,并且对它们的大小都有了了解 int main() { printf("%d\n", sizeof(bool)); printf("%d\n", sizeof(char)); printf("%d\n", sizeof(short)); printf("%d...

qq_44700008的博客 286

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

汇编——数字编码

核心边界规律:相同二进制内存数据,解析方式不同,数值完全不一样。● 当作有符号补码:-128。举例:8 位 0x80。● 当作无符号:128。例 :-1(8 位)

2501_94041724的博客 350

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

原码、反码、补码、1的补码、2的补码

原码、反码、补码、1的补码、2的补码

听海边涛声 8336

原码,反码,补码

只有有符号数才有原码反码补码,其在内存中是以补码的形式存储,无符号数在内存中是以二进制数的形式存储的! 正数的原码反码补码相同。 负数的原码首位是符号位,用1占这个位表示负数,其余位等于其绝对值数的原码(比如-8的源码是1000 1000,至于为啥是8位,因为计算机存储的最小单位是字节,1字节是8比特位)。 负数的反码等于除符号位外对其原码逐位取反。 负数的补码在其反码的基础上加1. ...

woainilixuhao的博客 271

原码、反码、补码的互换

原码、反码、补码的互换

努力 2238

原码、反码、补码简介

有符号数,左边第一位是符号位,0为正,1为负。在java中都是有符号数。 ##.转换关系 原码:最左侧为符号位,用剩余数位来表示绝对值; 反码:正数和0,反码为其本身; 负数的反码,符号位不变,其余各位数字取反(0变1,1变0)。 补码:正数和0,补码为其本身; 负数的补码,在反码基础上,不考虑符号位,最末一位加1。 ##.java代码中转化 代码中可用位运算,原码转反码,以int值为例,若a为负整数,则a的反码为: int b...

u013914309的博客 879

计算机组成原理——前言

计算机组成原理前置知识

m0_66881249的博客 1090

原码、反码、补码

有符号的数据表示法 在计算机内,有符号数有三种表示法:原码、反码和补码。(都是二进制表示法) 所有数据的计算都是采用补码进行的。 原码: 就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。 反码: 正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。 补码: 正数的补码与其原码相同;负数的补码是在其反码的末位加1。 总结: 最高位是符...

赤兔胭脂小吕布的博客 134

原码、反码、补码和移码

原码是最直观的二进制表示法,其中最高位(通常是左边的第一位)用作符号位(0表示正数,1表示负数),其余位表示数值的大小。

xiaofeixia002X的博客 2084

无符号数编码的加法运算不会产生溢出_数字IC中有符号数的表示和计算

十进制数大家都很熟悉,既方便又易于理解,但是在数字电路中十进制数就不太好办了。在数字系统中我们使用的是只由0和1两个数字构成的二进制数,或者叫作基2的数。每个二进制数位叫作一个位(bit)。在无符号数中所有的位都代表了数的大小,因此在定义数的大小时,所有n位都是有意义的。因此最高位(MSB)就是无符号整数的最左侧的位bn-1。在十进制系统中将“+”或“-”标在最高有效位的左侧来表示数的正...

weixin_35628777的博客 1974

位运算学习

位运算笔记

m0_60452277的博客 4653

java源码补码反码_Java基础——原码, 反码, 补码 详解

本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助!一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的...

weixin_33656211的博客 217
上一篇: 按位运算符种类
下一篇: C语言基础01变量与数据类型
Pythonkilla
博客等级 码龄8年 3粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值