精华内容
下载资源
问答
  • 原码、反码、补码的表示范围是如何得到的原码纯整数的原码纯小数的原码反码纯整数的反码纯小数的反码补码纯整数的补码纯小数的补码 原码 首先说原码,原码是有符号数中最简单的编码方式。原码表示法在数值前面增加了...

    原码

    首先说原码,原码是有符号数中最简单的编码方式。原码表示法在数值前面增加了一位符号位(即最高位为符号位):0表示为正数,1表示为负数,其余为数值位,表示数值大小。

    纯整数的原码

    原码的范围是 – (2n–1) ≤ x ≤ 2n–1(n是整数位数)
    这是如何得到的呢?
    以机器字长为8为例,符号位占1位,那么剩下有7位的数值位,如果不考虑整数的符号,那么这7位数最大的时候为全1,即111 1111,转换为十进制为27–1
    当符号位为0,即0111 1111,此时该数最大,为27–1
    当符号位为1,即1111 1111,此时该数最小,为 – (27–1) 。
    即当数值位有n位时(机器字长为n+1位),
    纯整数的原码的范围是 – (2n–1) ≤ x ≤ 2n–1

    纯小数的原码

    原码的范围是 – (1–2n) ≤ x ≤ 1–2n(n是数值位数)
    同样以机器字长为8为例,即有7位的数值位,如果不考虑小数的符合,那么这7位数最大的时候为全1,即0.1111 111,那这该怎么计算?难道要用2-1+2-2+……+2-n吗?如下图所示:在这里插入图片描述即当符号位为0,即0.1111111,此时该数最大,表示为1–2–7
    当符号位为1时,即1.1111111,此时该数为负数,且为最小负数,表示为 – (1–2–7)。
    即当数值位有n位时(机器字长为n+1位),
    纯小数原码的范围是 – (1–2n) ≤ x ≤ 1–2n(n是数值位数)。

    反码

    反码通常用来作为由原码求补码或由补码求原码的中间过渡。
    正数的反码与原码是相同的,而负数的反码是将数值位按位取反,就可以得到。

    纯整数的反码

    以8为机器字长为例,由于正数的反码与补码相同,因此对于最大正数的由来这里不多赘述,同上。那么最小负数如何得来?
    其实与原码也是同一个道理,但是由于负数的反码要按位取反,数值位的全0会变成全1,同样,如果真值的数值位为全1,那么反码表示则会为全0,加上符号位的1,
    即最小负数用原码可表示为1,1111111,反码则表示为1,0000000,即反码可表示的最小负数–(27–1)。
    故当机器字长为n+1时,
    纯整数的反码表示范围是 – (2n–1) ≤ x ≤ 2n–1,与原码是相同的

    纯小数的反码

    纯小数的反码与上述纯整数的反码是类似的,这里不多赘述,它的表示范围与纯小数的原码是相同的,最关键的就是记住按位取反
    纯小数反码的范围是 – (1–2n) ≤ x ≤ 1–2n(机器字长为n+1)。

    补码

    由于正数的原码、反码和补码都是相同的,故在这里我们就只讨论负数,而最大值(即最大正数)都是同原码相同的。
    补码是在反码的基础上(按位取反),末尾再加1。

    纯整数的补码

    要正确理解补数,必须要知道补码就是同余。机器字长为8位时,只能表示256个数,但我还想表示一些负数怎么办?就用该负数同余的正数来表示。例如-1=255,-2=254。它的模就是28=256,而负数的补码为模与该负数绝对值的差值,则 – 128 = 256 – 128 = 128,所以–128的补码是10000000。无符号正数从0到255,补码表示的有符号正数从-128到127,其实刚好都是一个相互对应的。
    由此可知,当数值位为n时(机器字长为n+1),
    纯整数的补码的范围是 – 2n ≤ x ≤ 2n–1

    纯小数的补码

    对于小数,补码的最小负数是最让人难以理解的,为什么补码的1.000 0000对应的真值是-1呢?
    如果我们采用对补码取反加一的方法,可以发现结果根本就不是这个值,而结合前面纯小数原码的取值范围,我们发现,在纯小数中,原码和反码都不能表示-1, 他们都只能表示纯整数的-1。从纯小数补码的定义可知,-1.0的补码为2–1.0=1.000 0000。有没有发现这跟上述的纯整数的补码非常相似,只不过纯整数的补码模取的是2n+1,而纯小数补码中,模取的是2,这样我们对于负数的补码就可以清晰的理解了。

    因此,纯小数补码的范围是 – 1 ≤ x ≤ 1–2n(机器字长为n+1)。

    综上可发现,原码和反码的表示范围是相同的,记住一个,另一个也就记住了,而补码的表示范围中,最大正数是与原码反码相同,但是负数就有区别了。对纯小数来说,补码可表示的最小负数是 – 1;对于纯整数来说,补码可表示的最小负数是 – 2n

    展开全文
  • 原码,反码,补码的表示范围

    千次阅读 2019-12-14 21:20:41
    图中已经很清楚给出范围,原码与反码都有正零,负零之分,而补码没有。补码比原码反码多表示一位,那就是-2^n

    在这里插入图片描述
    图中已经很清楚的给出范围,原码与反码都有正零,负零之分,而补码没有补码比原码反码多表示一位,那就是-2^n

    展开全文
  • 原码,反码,补码的表示范围总结

    万次阅读 2016-09-15 15:37:01
    首先形成概念是:原码和反码小数表示的范围是一样,仅仅是二进制存储不同罢了。 更有趣是它们存储范围是关于零点对称!原码小数,反码小数都是:-1+2^(-n) =^(-n) 中间是+0,-0两种 x0x1x2x3…xn ...

    小数: x0.x1x2x3xn,x0
    整数:x0x1x2x3xn,x0

    首先形成的概念是:原码和反码小数表示的范围是一样的,仅仅是二进制的存储不同罢了。

    更有趣的是它们的存储范围是关于零点对称的!

    原码小数,反码小数都是:1+2n=<x<=12n

    中间是+00两种

    x0x1x2x3xn

    原码整数,反码整数:(2n1)x2n1//这个很好理解,例证是-127~127

    补码里的0只有一种表示,因此多了一个离散状态可以表示其他的数,这个数在小数中是1,整数中是2n
    所以把数据给了最小的那个。
    自然而然就不是对称的。

    因此补码小数:1x12n

    补码整数:2nx2n1

    展开全文
  • 原码、反码和补码的表示范围

    千次阅读 2017-01-03 14:32:09
    首先形成概念是:原码和反码小数表示的范围是一样,仅仅是二进制存储不同罢了。 更有趣是它们存储范围是关于零点对称! 原码小数,反码小数都是:−1+2−n=x=1−2−n 中间是+0,−0两种 x0x1x2x3…...

    小数: x0.x1x2x3xn,其中x0 
    整数:x0x1x2x3xn,其中x0

    首先形成的概念是:原码和反码小数表示的范围是一样的,仅仅是二进制的存储不同罢了。

    更有趣的是它们的存储范围是关于零点对称的!

    原码小数,反码小数都是:1+2n=<x<=12n

    中间是+00两种

    x0x1x2x3xn

    原码整数,反码整数:(2n1)x2n1//这个很好理解,例证是-127~127

    补码里的0只有一种表示,因此多了一个离散状态可以表示其他的数,这个数在小数中是1,整数中是2n 
    所以把数据给了最小的那个。 
    自然而然就不是对称的。

    因此补码小数:1x12n

    补码整数:2nx2n1

    总结一下三种表示方法的范围:

    定点小数:

    原码:  -(1-2-n N 1-2-n

    反码:  -(1-2-n N 1-2-n

    补码:   -1 N 1-2-n

     

    定点整数:

    原码: -(2n -1) N 2n -1

    反码: -(2n -1) N 2n -1

    补码: - 2n  N 2n -1


    展开全文
  • 首先了解一下原码,反码,补码的概念 原码 原码的表示方法: 简单来说就是,在机器中我们使用0和1来区分一个数的符号,用0来表示正数,用1来表示负数。而原码表示就是将一个数绝对值的二进制表示出来后根据是正数...
  • 8位二进制补码的表示范围:-128~+127 实际上,将负数用补码表示,实际上是实现了一种从[-128, 127]到[0, 255]的映射。 原码、补码、反码的关系 原码、反码和补码—— -128的补码为什么是10000000 ...
  • 补码表示的范围

    2016-10-29 17:18:40
    为什么补码表示的是-128到127啊,求指教。
  • 8位有符号数的补码表示范围

    万次阅读 多人点赞 2017-07-15 22:48:07
    根据补码的几条规定即可推出上述结论: 1 若二进制每位全为0,则表示数0 2 若最高位(即符号位)为0,表示正数 3 若最高位为1, 表示是负数,而该负数的绝对值是多少呢?将每个二进制位(包括符号位)取反加1,得到一个...
  • 有符号整、小数原、反、补码表示范围,及补码比原、反码多表示一位原因。计算机组成原理学习笔记。
  • 为什么一个字节的补码表示范围是-128~127

    万次阅读 多人点赞 2018-09-19 20:42:06
    我们要先区分一下原码、反码和补码的表示规则: 0的表示:  原码:有正零和负零之分,[+0]补=0000 0000,[-0]补=1000 0000;  反码:同样有两种表示方法,[+0]反=0000 0000 ,[-0]反=1111 1111;  补码:零...
  • 求负整数二进制补码:先求与该负数相对应正整数二进制代码,然后所有位取反加1,不够位数时左边补1,例如,求-3二进制补码,先求3二进制补码,3=11,取反之后为00,加1之后为01,假设用八位二进制表示,...
  • 浮点数的表示范围及原码补码

    千次阅读 2019-02-19 19:41:02
    一般来说,类型float和double分别有7和16个有效位。 ...  为什么8位有符号类型...符号位代表整个数字符号,指数第一位代表指数符号,后7位代表范围,因此float表示的范围是-*1 ~+*1 即 -127~128 1(23位小...
  • 为什么计算机中的整数要用补码表示?补码表示有什么好处?   在计算机中,补码可谓是十分神奇而又重要的存在...在原码中,-0和+0都存在,而补码的表示则确保了0的唯一值,即00000…00。 既然0唯一确定了,那么我们便
  • 转自:补码表示的浮点数规格化及示数范围 一、规格化 对二进制浮点数N = m x rm ^ e(rm为尾数基),若尾数m满足1/2≤|m|,即尾数最高位数字为“1”,则为规格化数。 对补码来说:如果是正数,...
  • 看了一晚上,终于从懵逼中走了出来。 规律大概就是,分析绝对值大小,绝对值大,阶码越...基本知识不解释了,计算机组成原理书上都有,补码移码不理解自己去翻书看,第4页ppt上也写了一下简单转换规律。 ...
  • 计算机组成浮点数补码规格化负数表示范围

    千次阅读 多人点赞 2019-06-26 15:50:42
    推理:关于浮点数的表示与运算章节中,补码规格化后的负数所能表示的范围 一、记住形式1.0xx,现要找最大的负数 二、假设现在仅4位(符号位占一位),毫无疑问就是-0.001,原码表示就是1.001(最低位为0时-0在原码...
  • 补码表示方案中,负整数实际上是用该数相反数的补码表示的。 eg:字长为8计算机中表示-36,该数相反数是36,补码是256-36=220,所以在计算机中,该数存储为220D,也就是11011100B。 eg:
  • 用一个字节8位来表示...,+127,其中0的表示不唯一,分+0和-0两种。 [-0]原码为10000000 [+0]原码为00000000    正数的反码和原码相同, 负数的反码为原码最高位不变其他位求反 反码表示的范围为-127,。。
  • 对于这个标题我也是无奈之举,实在想不出比较合适标题,但我想陈述问题其实很简单——有关二进制机械码范围问题思考: 其实主要是补码和浮点数表示中指数阶码表示范围的一些想法,举个例子,8位二进制补码...
  • 在一个8位二进制机器中,补码表示的整数范围是从_(1)_ (小)到 _ (2) _ (大)。这两个数在机器中的补码表示为 _ (3) _ (小)到 _ (4) _ (大)。数0的补码为_(5)_。 分析过程 在8位字长机器中,补码:第一位表示...
  • 最近复习c++,发现原码反码补码以及有符号数和无符号数的表示范围这方面的概念很模糊,现整理如下,供大家参考。 1、原码: 最高位表示数的符号,其他位表示数值 例如:[+7]原 = 0000 0111 [-7]原 = 1000 0111 2、...
  • char类型占一个字节。所占位数为8位。取之范围为-128~127(补码形式存储...当需要补码的时候,一般是负数(减法转加法) 补码:正数不变,负数是用模(模一般是最大数+1)减去负数的绝对值。 8位2进制的模:1 00...
  • ===================================================================================== 1、正数反码和补码都与原码相同。...1、原码表示法规定:用符号位和数值表示带符号数,正数符号位用“0...
  • 原码表示的范围-127~+127 而用其补码表示则是-128 ~ +127 ----> 10000000~01111111,为什么10000000就是表示-128, 回答: 因为有一位是符号位,所以后7位是数值位。 2^7=128,所以正数和负数各有127个(正数0 000...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,484
精华内容 593
关键字:

补码的表示范围