让星星⭐月亮告诉你,原码、反码、补码以及为什么要用反码和补码

2024-05-14 14:08

本文主要是介绍让星星⭐月亮告诉你,原码、反码、补码以及为什么要用反码和补码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转载自:
cumtchw
When you learn a knowledge, you must reach the level that you can use it proficiently, not just know it or be familiar with it
https://www.cnblogs.com/cumtchw/p/4523332.html

⭐⭐⭐机器数🌙🌙🌙

一个数在计算机中的二进制表示形式,叫做这个数的机器数,机器数是带符号的,在计算机中用一个数的最高位存放符号,正数为0,负数为1,比如,十进制中的+3,假设计算机字长为8位,转换成二进制就是0000 0011,如果是-3,就是1000 0011.那么,这里0000 0011和1000 0011就是机器数,

⭐⭐⭐真值🌙🌙🌙

因为第一位为符号位,所以机器数的形式值就不等于真正的数值,例如上面的有符号数1000 0011,其最高位1代表负,其真正数值是-3,而不是形式值131(1000 0011转换成10进制等于131),所以为了区别起见,将带符号的机器数对应的真正数值称为机器数的真值。例如:0000 0001的真值=+000 0001=+1,1000 0001的真值=-000 0001=-1

⭐⭐⭐原码🌙🌙🌙:

原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值,比如如果是8位二进制,[+1]原=0000 0001.[-1]原=1000 0001.因为第一位是符号位,所以8位二进制的取值范围就是:[1111 1111,0111 1111]即[-127,127],原码是人脑最容易理解和计算的表示方式。

⭐⭐⭐反码🌙🌙🌙:

反码的表示方法是:正数的反码是其本身,负数的反码是在其原码的基础上,符号位不变,其余各个位取反,[+1]=[0000 0001]原= [0000 0001]反,[-1]=[1000 0001]原=[1111 1110]反。可见如果一个反码表示的是负数,人脑无法直观的看出来它的数值,通常要将其转换成原码再计算。

⭐⭐⭐补码🌙🌙🌙:

补码的表示方法是:正整数的二进制补码与其二进制原码相同,负整数的二进制补码,先求与该负数相对应的正整数的二进制代码,然后所有位取反加1,不够位数时左边补1,例如,[+1]=[0000 0001]原=[0000 0001]反=[0000 0001]补,[-1]=[1000 0001]原=[1111 1110]反=[1111 1111]补,对于负数,补码表示方式也是人脑无法直观看出其数值的,通常也需要转换成原码再计算其数值。

⭐⭐⭐为什么要使用原码反码补码🌙🌙🌙:

1.对于正数因为三种编码方式都相同,没有什么好解释的,但是对于负数,负数的原码反码补码是完全不同的.既然原码才是被人脑直接识别并用于计算方式,那么为什么还要用反码和补码呢,
2.首先,因为人脑可以知道原码的第一位是符号位,在计算的时候,我们会根据符号位,选择对真值区域的加减,但是对于计算机,加减乘除已经是最基础的运算,要设计的尽量简单,计算机辨别符号位显然会让计算机的基础电路设计变得十分复杂,于是人们想出了将符号位也参与运算的方法,我们知道,根据运算法则减去一个正数等于加上一个负数,即:1-1=1+(-1)=0;所以机器可以只有加法而没有减法,这样计算机运算的设计就更简单了,那么如果用原码计算,1-1=1+(-1)=[0000 0001]原+[1000 0001]原=[1000 0010]原=-2.如果用原码计算,让符号位也参与运算,显然对于减法来说,结果是不正确的,这也就是为什么计算机内部不用原码表示一个数,为了解决原码做减法的问题出现了反码,如果用反码计算减法,1-1=1+(-1)= [0000 0001]原+ [1000 0001]原=[0000 0001]反+[1111 1110反]=[1111 1111]反=[1000 0000]原=-0,发现用反码计算减法,结果的真值部分是正确的,而唯一的问题其实出现在0这个特殊的数值上,虽然人们理解上+0和-0是一样的,但是0带符号是没有任何意义的,而且会有[0000 0000]原和[1000 0000]原两个编码表示0;于是补码的出现,解决了0的符号以及两个编码的问题:1-1=1+(-1)=[0000 0001]原+[1000 0001]原=[0000 0001]补+[1111 1111]补=[0000 0000]补=[0000 0000]原,这样0用[0000 0000]表示,而以前出现的问题-0则不存在了,而且可以用[1000 0000]表示-128;(-1) + (-127) = [1000 0001]原 + [1111 1111]原 = [1111 1111]补 + [1000 0001]补 = [1000 0000]补。-1-127的结果应该是-128, 在用补码运算的结果中, [1000 0000]补 就是-128. 但是注意因为实际上是使用以前的-0的补码来表示-128, 所以-128并没有原码和反码表示.(对-128的补码表示[1000 0000]补算出来的原码是[0000 0000]原, 这是不正确的)使用补码, 不仅仅修复了0的符号以及存在两个编码的问题, 而且还能够多表示一个最低数. 这就是为什么8位二进制, 使用原码或反码表示的范围为[-127, +127], 而使用补码表示的范围为[-128, 127].因为机器使用补码, 所以对于编程中常用到的32位int类型, 可以表示范围是: [-2^31, 2^31-1] 因为第一位表示的是符号位.而使用补码表示时又可以多保存一个最小值

这篇关于让星星⭐月亮告诉你,原码、反码、补码以及为什么要用反码和补码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/988946

相关文章

数业智能心大陆告诉你如何培养孩子的批判性思维?

现今的教育体系自小学起便强调培养孩子的批判性思维,这种能力被视为在复杂世界中生存和发展的关键。在当今信息爆炸的时代,它能让我们在海量信息中辨别真伪、深入思考并做出明智决策。如今,如数业智能心大陆产出的AI 心理咨询平台的出现为培养孩子批判性思维提供了新可能,其通过互动引导孩子思考,助力孩子提升批判性思维能力。 什么是批判性思维呢? 批判性思维是一种思考方式,它能够使我们在接收信

当当图书福利券,满400减230,别说我没告诉你!

1024程序员节 当当网计算机图书 每满100减50! 满200减100! 满300-150! 机械工业出版社华章公司联合当当网特意为【大数据技术与架构】用户申请了一批可与满减叠加使用的“满200减30”的图书优惠码,优惠码使用后相当于: 400减230 !!!   优惠码:【YRMQMY】(注意区分大小写) 使用渠道:当当app和当当小程序 使用时间:10月22-10月31 本活动满减与礼券

原码、反码、补码新解

世界上有10中人,一种懂二进制,一种不懂二进制。我们习惯了十进制计数,乍看到二进制,有点别扭,认识后慢慢发现它的神奇:有点一生二,二生万物的意思。十进制和二进制的部分对应关系如下: 小范围的十进制运算,我们操练起来麻麻溜溜的,二进制的运算相信你也不差,然,碰到十进制转二进制的运算就有点蒙圈了。 计算机 CPU 的运算器只实现了加法器,没有实现减法器。但,我们可以通过加上一个负数来实现减法运

阿里十年架构师用一张图告诉你什么是系统架构师

阿里十年架构师用一张图告诉你什么是系统架构师 Java架构解析 2018-11-03 20:54:41 这张图从架构师的综合能力、岗位认识、岗位职责等方面,清楚的画出了作为一个架构的基本准则。人人都想成为架构师,可作为架构你达到了图上面的要求了吗?   系统架构师是个神奇的岗位。为什么这么说,在一个人数不多的小公司,你可能什么都需要做,身体力行,做总监兼架构师或者是主管/高级开发兼架构

B端:工作台页面放什么?不知道,这里告诉你10个常见内容。

工作台是B端系统的核心页面,也是最常用的页面,该页面的上通常放哪些内容了,是中说纷纭,本文把常放内容给大家列举下。 B端工作台页面是专门为企业用户设计的工作台,通常需要包含一些与企业工作相关的功能和信息。以下是一些常见的内容,可以考虑在B端工作台页面中展示: 数据概览: 展示企业的重要数据指标,比如销售额、订单量、客户数量等,让用户能够一目了然地了解企业的运营情况。 任务管理:

视频合并怎么操作?这篇文章告诉你

当你手头有多个片段,想要将它们巧妙地拼接在一起,形成一个完整的故事时,你会怎么做呢? 手动逐帧调整?这显然是个耗时且复杂的过程。幸好,现在有许多优秀的视频合并模板软件可以帮助你轻松实现这一目标。 今天,就让我们一起来看看五款值得尝试的视频合并模板软件,它们不仅能让视频编辑变得简单,还能让你的作品看起来专业又时尚。 一、【剪辑魔法师】 适用人群:适合追求高效剪辑和创意表达的视频制作爱好者

C语言操作符详解1(含进制转换,原反补码)

文章目录 一、操作符的分类二、二进制和进制转换1.二进制与十进制的相互转换2,二进制与八进制的相互转换3.二进制与十六进制的相互转换 三、原码、反码和补码四、移位操作符1.左移操作符(1)左移操作符移位方法(2)左移操作符规律总结 2.右移操作符(1)逻辑右移移位方法(2)逻辑右移规律总结(3)算术右移移位方法(4)算术移位规律总结 五、位操作符:&、|、^、~1.按位与操作符&2.按位或

宇宙星星转动特效带背景音乐引导页源码

源码介绍 宇宙星星转动特效带背景音乐引导页源码,源码由HTML+CSS+JS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面,重定向这个界面 效果预览 源码获取 宇宙星星转动特效带背景音乐引导页源码

开放式耳机好处有哪些?一文告诉你开放式耳机的秘密

先放答案: 开放式耳机的好处主要有以下方面: 佩戴舒适:开放式耳机通常不堵塞耳道,不会对耳朵造成压迫,长时间佩戴也不易产生闷热感,相比入耳式耳机舒适度更高,能减少耳部疲劳和不适。例如,一些开放式耳机采用了特殊的材质和设计,如柔软的硅胶耳挂或轻盈的机身结构,让用户在长时间使用过程中几乎感觉不到负担。 更健康卫生:不入耳的设计使得耳道能够保持干爽透气,减少了细菌滋生的环境,降低了耳部感染

【软考】——原码、反码、补码、移码

在计算机中,数据编码方式可以有多种,最为常见的有原码、反码、补码、移码。在进行原码,反码,补码,移码之间的转换的时候首先要将他们转换为二进制,在下面的讲解中以17为例来进行讲解。 将17转换为八位数的二进制为00010001。 【原码】      在原码中,将最高位用作符号位(0表示正数,1表示负数),其余各位代表数值本身的绝对值的表示形式,正数的原码是本身,负数的原码只