首页 > 其他分享 >[计组] 计算机编码方式:原码、反码、补码

[计组] 计算机编码方式:原码、反码、补码

时间:2024-04-13 14:33:46浏览次数:15  
标签:表示 反码 补码 负数 加法 编码方式 原码

  • 原码反码补码是计算机中用来表示带符号整数的三种编码方式,它们在计算机内部的运算和表示过程中发挥重要作用。

  • 在计算机系统中,数值一律用补码来表示和存储。
  • 原因在于,使用补码,可以将符号位数值域统一处理;同时,加法减法也可以统一处理。

1 计算机编码方式:原码 / 反码 / 补码

1.1 概念辨析

1.1.1 原码

  • 原码Sign-Magnitude Representation): 原码是最直接的表示方法,其中最高位表示符号位0表示正数,1表示负数),其余位表示数值的绝对值
  • 例如,+5的原码是 0000 0101-5的原码是 1000 0101
  • 原码的优点表示直观,但在进行加法减法运算时存在问题。

1.1.2 反码

  • 反码One's Complement): 为了解决原码的加法减法问题,人们引入了反码表示。在反码中,正数的反码与其原码相同,负数的反码是将其原码每位取反**(0变1,1变0)。
  • 例如,+5的反码是 0000 0101-5的反码是 1111 1010
  • 尽管反码解决了加法问题,但仍然存在溢出的表示问题。

1.1.3 补码

  • 补码Two's Complement): 为了彻底解决加法表示问题,人们引入了补码表示。
  • 补码中,正数的补码与其原码相同,负数的补码是将其原码每位取反再加1
  • 例如,+5补码0000 0101-5的补码是 1111 1011
  • 补码表示不仅解决了加法和表示问题,还能够自然地处理溢出
  • 补码表示的优势在于:它允许用相同的方式处理正数负数,以及能够在数字的范围内进行循环运算,而无需额外的处理。

因此,在大多数计算机体系结构中,补码表示被广泛采用用于带符号整数的表示和运算。

1.1.X 小结

  • 总结起来,原码反码补码是用于表示带符号整数的三种编码方式
  • 原码表示直观,反码解决了加法问题,而补码不仅解决了加法问题,还能够自然处理负数的表示和溢出问题。
  • 在计算机中,补码表示是最常见和有效的带符号整数表示方式。

1.X 案例

1.X.1 案例1:

  • 以补码定义式为基础,沿数轴列出典型的真值、原码与补码表示,可清楚了解补码的有关性质

真值、原码和补码的关系

  • (1) 在补码表示中,最高位X0(符号位)表示数的正负,在形式上与原码相同,即 0正 1负。但补码的符号位是数值的一部分,由补码定义式计算而得。

例如,负小数补码X0中为 1,这个 1是真值X(负)加模 2后产生

  • (2) 在补码表示中,数 0只有一种表示,[+0]补 =[-0]补 =0.000……0
  • (3) 负数补码表示的范围比原码稍宽,多一种数码组合。对于定点数,若为纯小数,表示范围为:
    ,若为纯整数,表示范围为:

1.X.2 案例2:0的补码

  • 数0的补码表示是唯一的。
  • [+ 0]补 = [+0]反 = [+0]原 = 00000000
  • [- 0]补 = 11111111+1 = 00000000

1.X.3 案例3:补码 (推断)> 原码

  • 例:已知一个补码1111 1001,则:原码1000 0111(-7)。

解:因为符号位为“1”,表示是一个负数,所以该位不变,仍为“1”;其余七位111 1001取反后为000 0110;再加1,补上负数的1,所以是1000 0111

X 参考文献

标签:表示,反码,补码,负数,加法,编码方式,原码
From: https://www.cnblogs.com/johnnyzen/p/18132824

相关文章

  • 原码、移码、反码、补码
    对于数字0来说,移码和补码都是唯一的 +5-5原码0_000_01011_000_0101反码0_000_01011_111_1010(原码负数取反)补码0_000_01011_111_1011(反码+1)移码1_000_01010_111_1011(符号位取反的补码)......
  • 查看Windows操作系统编码方式
    编码表:代码页国家(地区)或语言437美国708阿拉伯文(ASMO708)720阿拉伯文(DOS)850多语言(拉丁文I)852中欧(DOS)-斯拉夫语(拉丁文II)855西里尔文(俄语)857土耳其语860葡萄牙语861冰岛语862希伯来文(DOS)863加拿大-法语865日耳曼语866俄语-西里尔文(DOS)869......
  • 大一下 计算系统基础笔记:原码的一位乘法 20240402
    W61.原码的一位乘法原码的一位乘法可以通过以下步骤进行:1.确定乘法的两个操作数,并将它们转换为原码表示。2.对两个操作数的每一位进行相乘,得到部分积。3.将所有的部分积相加,得到最终的乘积。具体的步骤如下:假设有两个操作数A和B,都用原码表示,长度为n位。1.确定符号位:根据A......
  • 【深度解析】计算机组成原理:8位二进制数的原码、反码与补码表示及溢出处理实例
    #自用笔记引言在计算机系统中,数值的内部表示是其基础组成原理的核心部分。尤其对于有符号整数而言,原码、反码和补码的运用极大地简化了运算过程,并有效地解决了负数表示问题。本文将深入探讨8位二进制数下这三种编码方式的规则,同时通过具体示例分析溢出现象及其解决办法。一......
  • C语言 03 原码 反码 补码
    原码计算机中所有的数字都是使用0和1这样的二进制数来进行表示的。这时如果要存储一个数据,比如十进制的3,那么就需要使用2个二进制位来保存,二进制格式为11,占用两个位置,称为2bit位。一般占用8个bit位表示一个字节(B),2个字节等于1个字,所以一个字表示16个bit位......
  • 数据表示——原码/反码/补码/移码
    计算机中的数值信息分成整数和实数两大类。整数不使用小数点,或者说小数点总是隐含在个位数的右边,所以整数也称为“定点数”。相应地,实数也称为“浮点数”。计算机在存储或运算时,需要采用一种编码形式表示数值,这种表示方式就分为原码、反码和补码。1.原码最高位是符号位......
  • 原码、反码、补码以及位运算符
    对于有符号的而言:二进制的最高位是符号位:0表示正数,1表示负数(口诀0——>0,1——>-)。正数的原码、反码、补码都是一样的(三码合一)。负数的反码=它的原码符号位不变,其他位取反(0——>1,1——>0)。负数的补码=它的反码+1,负数的反码=负数的补码-1。0的反码、补码都是0。J......
  • 【C语言步行梯】各类操作符、类型转换与原码、反码、补码详谈
    ......
  • .net 各种文件编码方式读取txt文件
    txt文件,有不同的编码方式,导入到系统有时不识别,故做以下适配。#region字节流编码格式判断///<summary>///获取txt文件内容行///兼容不同的编码方式///</summary>///<paramname="stream"></param>///<paramname="i......
  • Java 源码,反码和补码
    计算机在对数据进行运算的原理?3-2=13+(-2)=1先将3这个十进制,变成二进制的原码形式,然后变成反码形式,最后变成补码形式先将-2这个十进制,变成二进制的原码形式,然后变成反码形式,最后变成补码形式将这两个数二......