补码.原码.反码怎么运算的啊.详细一点

作者&投稿:武背 (若有异议请与网页底部的电邮联系)
补码.原码.反码怎么运算的啊.详细一点~

补码、原码、反码,这些都是计算机专家创造的词汇。
事实上,它们,都不应该存在。
计算机的运算,是很简单的,和这些词汇,并没有任何关系。
--------------------------
你想象一下:
  有一个小朋友,很小的,大概是三岁吧。
  他只会数一百个数(0~99),会加法,还不会做减法。
那么,你可以这样教他:加 99,就是减一。
比如: 25 - 1 = 24
    25 + 99 = (一百) 24
他忽略了进位,只取 2 位数,结果,就是正确的。
--------------------------
上面是一个简单的例子,却说明了一个事实:
  做计算时,限定了位数,正数,就能当做负数使用。
限定了位数,有两个意义:
  数值是循环的,具有周期性;
  有没有进位,都不必考虑。
代替负数的正数,可称为:负数的补数。
  计算公式: 补数 = 负数 + 周期。
--------------------------
在计算机中,把 8 位 2 进制,称为一个字节。
计数值是:0000 0000~1111 1111。
十进制是:0 ~ 255。
计数周期:2^8 = 256。
此时,共有 256 的机器数。
较大的 128 个,就可以代表负数了:
 -1 补码就是:-1 + 256 = 255 = 1111 1111。
 -2 的补码 = 254 = 1111 1110。
 。。。
 -128 的补码 = 128 = 1000 0000。
较小的 128 个,就代表自身数值了:0 ~ 127。
--------------------------
减法算式: 5 - 7 = -2, 用 8 位补码计算如下:
      5 = 0000 0101
 -7 的补码 = 1111 1001
--相加---------------
  得: (0) 1111 1101 = -2 的补码
在这里,用加法代替了减法,略去进位,结果,就完全正确。
--------------------------
计算机中,用正数(补码)代替负数,减法运算也就没有了。
因此,计算机的硬件,就可以得到简化了。
所以,在计算机系统中,数值,一律采用补码表示和存储。
原码和反码,都是不用的。
它们,计算机中,根本就不存在。
--------------------------
什么是补码? 为什么要用补码?
看完上面的介绍,相信你都有了答案。
那么,原码和反码,就没有任何意义了。
这两种代码,只是用来求补码的过渡而已。
其实,原码和反码,还有“取反加一”,都是“鸡肋”。
学习这些,浪费时间不少,却不懂【补码的意义】是什么。
特别是用“取反加一”求 0 和-128 的补码,就办不到了。
 -128,有补码,却没有原码和反码,拿什么取反加一?
 -0 的补码,求出来是 0000 0000。
   符号位居然是 0 !
   难道,负零,是正数吗?
 有人说,零,不分正负,所有只有一个补码。
   那么,原码反码,为什么有两个零?
--------------------------
其实,原码反码取反加一,就是一大篇自相矛盾的谬论。
老外数学不好,由此可见一斑。

计算机中,并没有原码反码,只有补码。

补码,是在计算机中,自然形成的,跟原码反码毫无关系。

对于补码,应该直接用二进制来讨论,不要绕道并不存在的原码反码上去。

以八位机来说明如下。

数字 0,就是用八个位:0000 0000 来存放的。

数字-1,就是用零的二进制,减去一,即:

   0000 0000-1 = (1) 1111 1111,

   仍存放八个位,就是 1111 1111 (十进制255)。

数字-2,你就再减去一,就是 1111 1110 (=254)。

数字-3,你就再减去一,就是 1111 1101 (=253)。

。。。

-128,就是减 128 次一,最后得 1000 0000 (=128)。

这些就是负数的补码。

计算公式: 256+该负数

     =256-对应的正数

-18 的补码就是:256-18 = 238 = 1110 1110(二进制)。

你用“原码反码符号位取反加一”来计算,也一样是这个结果。

无聊的时候,再探讨原码反码吧,反正也没有任何用处。



以8位机器码为例:
对正数而言,原码、反码、补码都是相同的。
十进制数7,
都是:
00000111
对于-7
原码,只是最高位用1表示负数,就是:
10000111
反码,就是在原码的上,除最高位(符号位)外,按位取反就行:
11111000
补码,就是在反码的基础上,最低位加1:
11111001

在计算机中,使用的是二进制。

八个二进制位,称为一个字节。

计数范围是:0000 0000~1111 1111。

对应十进制:0 ~ 255,共有 256 个数字。

计数周期是:2^8 = 256。


在计算机中,并没有负数。

计算机中这些数字,都属于自然数,即“零和正数”。

但是,实际上,正数,也能当负数用的。

你看 2 位 10 进制数的计算:

   25 - 1 = 24

   25 + 99 = (一百)  24


如果你不舍弃进位,结果就 124,+99 还是 99。

如果,舍弃超出 2 位数的进位,+99 就相当于-1 。

这时的正数,就称为“负数的补数”。

算法是:补数=负数+周期 (10^n),n 是补数的位数。

-------------------------

在计算机中,255 = 1111 1111,就相当于-1。

示例:  0000 0001 = 1

  +  1111 1111 = 255

--------------

  (1) 0000 0000 = 0

舍弃了进位 1,这算式,就是:+1 -1 = 0。

如果保留进位,这就是: 1 + 255 = 256。

-------------------------

同理,254 = 1111 1110,就相当于-2。

   。。。

只要你舍弃进位,这些正数,就可以代表负数,参加运算。

这些正数,就称为:负数的补码。

  补码 = 负数 + 周期(2^n),n 是补码的位数。

-------------------------

利用补码,可以把减法,转换成加法。

从而就能简化计算机的硬件。

原码和反码,都没有这种功能。

所以,在计算机中,并没有原码和反码。

符号位原码反码取反加一,这些,都是“鸡肋”

学习这个,花费不少时间,还是弄不懂“补码的意义”

老外数学不好,也就只能整这些骚操作了。




原码补码反码怎么计算
1、原码符号位1不变,整数的每一位二进制数位求反,得到反码。2、反码符号位1不变,反码数值位最低位加1,得到补码。方法:(1)正整数的原码,反码和补码计算。【符号位为0,原码=反码=补码】(2)负整数的原码,反码和补码计算,先求原码,再求反码,最后求补码。(3)根据补码求真值,一般使...

原码补码反码怎么算的
[+1]原 = 0000 0001 [-1]原 = 1000 0001 第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是:[1111 1111 , 0111 1111]即[-127 , 127]原码是人脑最容易理解和计算的表示方式。2、反码 反码的表示方法是:正数的反码是其本身。负数的反码是在其原码的基础上, 符号位不...

原码补码反码怎么计算
1. 将8位二进制数10000001转换为十进制数:127 2. 计算原码:原码 = 反码 + 1,则反码为11111110,加上1得到原码为10000000,即-128 3. 计算补码:补码 = 2^n - 1,其中n为数值的位数,即2^8 - 1 = 255,则补码为11111111 4. 计算反码:反码 = 补码 - 1,则反码为11111110 因此,这个...

什么是原码、反码、补码?
原码:正整数的原码:这个数的二进制,符号位为0;正整数的原码=补码=反码 例1:+66 66的二进制:1000010,所以+66的原码: 0 1000010 =补码: 0 1000010=反码: 0 1000010 负整数的原码:仍是这个数的二进制,符号位为1;负整数的原码、反码、补码计算:先求原码,再求反码,最后...

原码,反码,补码,移码,阶码怎么算?
1、原码、反码和补码的表示方法 (1) 原码:在数值前直接加一符号位的表示法。例如: 符号位 数值位 [+7]原= 0 0000111 B [-7]原= 1 0000111 B 注意:a. 数0的原码有两种形式:[+0]原=00000000B [-0]原=10000000B b. 8位二进制原码的表示范围:-127~+127 (2)反码:正数:正数...

补码、原码、反码怎么运算?
[1111 1111 , 0111 1111]即 [-127 , 127]原码是人脑最容易理解和计算的表示方式。2. 反码 反码的表示方法是:正数的反码是其本身 负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。[+1] = [00000001]原 = [00000001]反 [-1] = [10000001]原 = [11111110]反 可见如果一个...

原码、补码、反码之间是怎样转换的?
- 正整数:原码、反码和补码都相同,无需转换。- 负整数:首先计算原码,然后将原码的除符号位外的所有位取反得到反码,最后在反码的最低位加1得到补码。补码的表示方法与模运算有关。例如,计算机的运算通常基于字长的模,如8位字长对应256的模。对于负数,其补码实际上是在正数的基础上加上模数,...

反码、补码、原码是什么意思?怎么换算?
反码补码原码怎么转换,来看看方法吧。1、首先原始代码的最高位是符号位,0表示正,1表示负,中间值表示数字的绝对值。2、符号的反转,正数符号的反转与原符号相同,负数的补数是该符号的最低有效位数加上1。3、补数,正数的补数与原代码相同,负数的补数在其倒数第一的基础上加1。零分为+0和-0。

补码.原码.反码怎么运算的啊.详细一点
补码,是在计算机中,自然形成的,跟原码反码毫无关系。对于补码,应该直接用二进制来讨论,不要绕道并不存在的原码反码上去。以八位机来说明如下。数字 0,就是用八个位:0000 0000 来存放的。数字-1,就是用零的二进制,减去一,即:0000 0000-1 = (1) 1111 1111,仍存放八个位,就是 ...

正数的原码,补码,反码是什么?
((10010)原)反=对正数(00010)原含符号位取反= 反码11101 (10010,1为符号码,故为负)(11101) 二进制= -2 十进制 (三)对于八进制:举例 某linux平台设置了默认的目录权限为755(rwxr-xr-x),八进制表示为0755,那么,umask是权限位755的反码,计算得到umask为0022的过程如下:原码0755= ...

顺义区17122553667: 一个数的原码,反码,补码怎么算啊? -
汝乖倍珞:[答案] 数在计算机中是以二进制形式表示的. 数分为有符号数和无符号数. 原码、反码、补码都是有符号定点数的表示方法. 一个有符号定点数的最高位为符号位,0是正,1是副. 以下都以8位整数为例, 原码就是这个数本身的二进制形...

顺义区17122553667: 原码,反码和补码之间有怎样的计算关系? -
汝乖倍珞:[答案] 原码 正数的符号位为0,负数的符号位为1,其它位按照一般的方法来表示数的绝对值.用这样的表示方法得到的就是数的原码. 反码 对于一个带符号的数来说,正数的反码与其原码相同,负数的反码为其原码除符号位以外的各位按位取反. 补码 正数的...

顺义区17122553667: 如何计算小数的原码补码与反码 -
汝乖倍珞:[答案] 把小数转化为分数,然后分子和分母分别算原码和补码,然后在相除计算出小数.

顺义区17122553667: 怎么样计算补码的反码 -
汝乖倍珞: 一般原码将1变0,0变1就成为反码,而补码在反码基础上加一, 要求补码的反码直接减一就行了.

顺义区17122553667: 怎么算补码和反码.... -
汝乖倍珞: 机器数的补码可由原码得到.1. 如果机器数是正数,则该机器数的补码与原码一样;2. 如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加1而得到的.3. 机器数的反码可由原码得到.1. 如果机器数是正数,则该机器数的反码与原码一样;2. 如果机器数是负数,则该机器数的反码是对它的原码(符号位除外)各位取反而得到的.

顺义区17122553667: 十六位机器码的原码反码补码怎么算比如:用十六位机器码1110001010000000来表示定点整数(最高位为符号位),当它是原码时表示的十进制真值为 多少... -
汝乖倍珞:[答案] 十六位机器码1110,0010,1000,0000 不管它是什么码,首先都要先将它转化为原码再做计算! 当它是原码时就直接转化为十进制的! (注释2ˇ3=8) =-(2ˇ7)+(2ˇ9)+(2ˇ13)+(2ˇ14)=-25216 -25216就是真值 ! 当它是补码时:先将它转化为原码,...

顺义区17122553667: 分数的原码反码补码怎么算,例如7/16 ,4/16 ,谁能教教我 -
汝乖倍珞:[答案] 十进制分数原码和补码可以先将分子和分母分别表示成二进制数,然后计算出二进制小数: 7/16=0111B/2^4=0.0111B 4/16=0100B/2^4=0.0100B 这样求出小数的原码、反码、补码就容易了. 希望能明白!!

顺义区17122553667: 和计算机有关的,反码,原码,补码!求它们的计算方法!望各位指教! -
汝乖倍珞: 原码就是一个n位二进制数,例如11110000B 反码把原码按位取反,00001111B 补码把反码加一,产生的最高位进位舍弃,00010000B 补码就是把反码加1 ,就可以了 反码0101010B的补码是0101011B

顺义区17122553667: 补码和原码的运算 -
汝乖倍珞: 原码就是直接将一个数转换成2进制在加上符号位即可,反码是将原码的符号位不变,其余位全部变反,补码就是在反码的基础上加1

顺义区17122553667: 原码 反码 补码 计算 -
汝乖倍珞: 正数:正数的反码与原码相同. 负数:负数的反码,符号位为“1”,数值部分按位取反. 例如: 符号位 数值位 [+7]反= 0 0000111 B [-7]反= 1 1111000 B 所以楼主再仔细看一下书,究竟00011010是+26的反码,还是负数的反码 --------------------...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网