谁能告诉我计算机的原码补码和反码的具体定义是什么?

具体的概念或定义
2024-11-22 03:59:34
推荐回答(2个)
回答1:

带符号数,有三种表示方法,即:原码、反码和补码。

但是,在计算机系统中,数值一律用【补码】来表示和存储。

所以,在计算机系统中,原码和反码,都是不存在的。

不存在的东西,也就不必关心了。

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

下面,针对补码,给出解释。

比如,有一个小孩,很小的。

他只认识 100 个数(0~99),也不会做减法。

那么,就可以告诉他:“减一”,就用“加 99”算吧。

  36 - 1 = 35

  36 + 99 = (1) 35

忽略进位的  100,结果不是一样的吗?

那么,就是说:

 99,就是-1 的补数。

利用“补数”,就可用“加法”代替“减法”。

这就可以简化计算机的硬件。

计算方法:

 -1 的补数 = 100 - 1

其中的 100,是两位十进制数的:周期。

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

在计算机中,是以二进制存放各种信息的,统称为:代码。

八位,作为一个计算单位。

范围是:0000 0000 ~ 1111 1111。

写成十进制,就是:0~255。计数周期就是:256。


那么:

 1111 1111 = 255(十进制),就是-1 的补码。

 1111 1110 = 254,就是-2 的补码。

 。。。

 1000 0000 = 128,就是-128 的补码。

计算公式: 补码 = 周期 + 负数。(再变为二进制。)

求负数的补码,就是这么简单。

正数,直接参加运算即可,不许做任何变换。

因此,补码的定义,如下:

  正数的补码: 正数,没有补码,直接运算。

  负数的补码: 周期 + 该负数。

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

原码和反码,在计算机中,并不存在。

原码和反码,只能写在纸上,或停留在口中。

无论它们是怎样定义的,都是毫无意义的事。

回答2:

数在计算机中是以
二进制
形式表示的。
数分为
有符号数

无符号数

原码、
反码

补码
都是有
符号
定点数
的表示方法。
一个有符号定点数的最高位为符号位,0是正,1是副。
以下都以8位
整数
为例,
原码就是这个数本身的二进制形式。
例如
0000001
就是+1
1000001
就是-1
正数的反码和补码都是和原码相同。
负数
的反码是将其原码除符号位之外的各位求反
[-3]反=[10000011]反=11111100
负数的补码是将其原码除符号位之外的各位求反之后在末位再加1。
[-3]补=[10000011]补=11111101
一个数和它的补码是可逆的。
为什么要设立补码呢?
第一是为了能让计算机执行减法:
[a-b]补=a补+(-b)补
第二个原因是为了统一正0和负0
正零:00000000
负零:10000000
这两个数其实都是0,但他们的原码却有不同的表示。
但是他们的补码是一样的,都是00000000
特别注意,如果+1之后有进位的,要一直往前进位,包括符号位!(这和反码是不同的!)
[10000000]补
=[10000000]反+1
=11111111+1
=(1)00000000
=00000000(最高位溢出了,符号位变成了0)
有人会问
10000000这个补码表示的哪个数的补码呢?
其实这是一个规定,这个数表示的是-128
所以n位补码能表示的范围是
-2^(n-1)到2^(n-1)-1
比n位原码能表示的数多一个
又例:
1011
原码:01011
反码:01011
//正数时,反码=原码
补码:01011
//正数时,补码=原码
-1011
原码:11011
反码:10100
//负数时,反码为原码取反
补码:10101
//负数时,补码为原码取反+1
0.1101
原码:0.1101
反码:0.1101
//正数时,反码=原码
补码:0.1101
//正数时,补码=原码
-0.1101
原码:1.1101
反码:1.0010
//负数时,反码为原码取反
补码:1.0011
//负数时,补码为原码取反+1
在计算机内,定点数有3种表示法:原码、反码和补码
所谓原码就是前面所介绍的二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示
数值
的大小。
反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。