什么是原码 补码 反码 什么是原码,补码和反码

www.zhiqu.org     时间: 2024-06-18

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

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

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

==================

数值 0,在八位机中,就是 0000 0000。

+1,就是加上一,即为:0000 0001。

+2,就再加上一,即为:0000 0010。

其他正数,依次递增即可。。。

最后的是+127,即为:0111 1111。

以上这些,就是正数的补码。

----------

负数,就是从 0 往下减。

-1 就是 0000 0000-1,取八位的结果,

那么,-1 就是:1111 1111 = 255(十进制)。

同理,-2 就是:1111 1110 = 254。

其他负数,依次递减即可。。。

最后的是-128,即为:1000 0000 = 128。

以上,就是数值,存在计算机中的补码。

求负数的补码,计算公式是:【 256 + 这个负数 】。

如果需要二进制,就自己变换吧。

==================

十进制数的运算,有个特点,看下面的算式:

   25 - 1 = 24

   25 + 99 = (一百) 24

忽略进位,这两种算法,就具有相同的功能。

因此,99,就是-1 的补数。

在二进制时,255 就是-1 的补码。

==================

借助于补码,就可以把减法,转换成加法运算。

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

如,减法运算: 59-31 = 28。

在计算机中,用补码的加法运算如下:

    59 的补码=0011 1011

   -31 的补码=1110 0001

-相加-------------

 得:    (1)    0001 1100 = 28 的补码

忽略进位,只保留八位,结果就完全正确。

这就实现了减法运算。

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

所以,计算机中,根本就没有原码和反码。



引入原码 反码 和补码的目的就是为了解决减法问题,因为计算机CPU的运算器中只有加法器,要把减法转化成加法来计算.
举个例子,A表示十进制数“+16”,B表示十进制数“-19”,把这两个数的原码直接相加,得:
A=+16 (A)原=00010000
B=-19 (B)原=10010011
00010000 +
10010011
————
10100011
其结果符号位为1是负数,其数值位为100011,即等于十进制数“-35”,这显然是错的结果.
再比如,十进制数“+16”与“+19”的原码直接相减,得:
00010000 -
00010011
————
11111101
结果为“-125”,这又是错的.
但是引入补码后,加减法都可以用加法来实现,如“-16+11”的运算:
11110000 + -16的补码
00001011 11的补码
————
11111011 -5的补码
如果是“-16-11”,那么就转化为加法运算“-16+(-11)”
11110000 + -16的补码
11110101 -11的补码
————
111100101 -27的补码
在字长为8位的系统中,最高位所产生的进位被自然丢弃,运算结果的机器数为11100101,是-27的补码形式,结果正确.
顺便告诉你一些其它的东西:
1.二进制数中,两数的补码之和等于两数和的补码.
2.补码=反码+1
3.反码=原码除符号位外其它数值取反(即该数的绝对值取反),即“0”变“1”,“1”变“0”.
4.任何正数的原码 反码 补码的形式完全相同(即都是自身,不变)
5.在计算机中,有符号的数都是采用补码来表示的.
6.计算的时候,符号位也参与运算.

什么是补码?

  补码是一个“代表负数运算的正数”。

  比如:25 - 1 = 24

     25 + 99 = (一百)  24

  忽略进位,+99 就能代替-1。

  同理,+98 就能代替-2。

  。。。

  这些正数,就是“负数的补数”。

  在计算机中,使用二进制,就改称为“补码”。

  使用补码,可把加减法,统一为加法运算,从而就能简化硬件。

 

什么是原码、反码?

  在计算机系统中,数值,一律采用“补码”表示和存储。

  原码和反码,只能写在纸上、在嘴里说说,并没有实际意义。

  没有用的东西,你说它们是什么就是什么,你就随便乱说吧。



你在学破解?



什么是原码 补码 反码?~

计算机中,没有原码反码。
计算机中,只有补码,用于表示正负数。
以八位码长,来说明:
 数字 0 的补码是:0000 0000。
 数字 1 的补码是:0000 0001。
 数字 2 的补码是:0000 0010。
 。。。依次递增。。。
 数字 127 的补码,就是:0111 1111。
负数,你就依次递减吧。
 数字 0 的补码是:0000 0000。
 数字 -1 的补码是:1111 1111。(=255)
 数字 -2 的补码是:1111 1110。(=254)
 。。。依次递减。。。
 数字 -128 的补码,就是:1000 0000。(=128)
---------------
由此可推出补码的定义:
 零和正数的补码,就是该数字本身。
 负数的补码,就是:256 + 该负数。
---------------
这就是:计算机中,正负数的存放格式。
其他说法如:原码反码符号位,都是人为瞎编的。
它们和计算机,没有任何关系。


#李废柄# 何为原码,何为反码,何为补码.,何为补码.. -
(17686901060): 原码(true form)是一种计算机中对数字的二进制定点表示方法.原码表示法在数值前面原码增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小. 补码规定:正数的补码与原码相同.负数的补码等于其原码的符号位不变,数值部分的各位取反,然后整个数加1. 反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外

#李废柄# 计算机中原码,补码,反码,是什么? -
(17686901060): 异或(xor)逻辑运算符按位进行异或运算 1000010001xor1100101010--------------------- 0100111011相同为真,相异为假希望能对你有帮助,望采纳,谢谢!

#李废柄# 二进制中的反码、补码、原码是什么? -
(17686901060): 电脑只认识0和1所以都是用的二进制 所以,比如: 2 的原码 0010 (前面是都是0,省略) 反码 1101 ( 就是把0与1反过来啊, 注意前面的0 都是1,全部反) 至于补码, 这就是要讨论的数值溢出, 因为位数太大, 我只先8位来说明明: 8位的最大数是: 0111 1111 再加1的话,会变成 1000 0000 这个就是负数了(1开头为负) 比如:127 +1 就会变成 -128 再+1 = -127 一直加到127

#李废柄# 谁可以告诉我计算机中补码,反码和原码的准确定义? -
(17686901060): 原码是一串二进制数,是原始数据,最高位为符号位,正数为0,负数为1. 反码是对原码各位进行求反得到,不改变符号位. 补码分两种情况: 1,对正数来说,补码即原码. 2,对负数来说,补码是原码的反码再加上1. 计算机中一般用补码来表示数据.

#李废柄# 计算机的原码,反码,补码是怎么回事?可以举例说明吗? -
(17686901060): 计算机的原码,反码,补码是怎么回事?可以举例说明吗?计算机中,并没有原码和反码.补码是怎么回事?这得从“补数”谈起.计算机所计算的位数,是固定的,如八位机...位数限定之后,就可以用“补数”代替负数,用加法实现减法...

#李废柄# 请大侠告诉我原码,反码,补码的定义
(17686901060): 原=10110100B 为负数 求其反码时,符号位不变,数值部分按位求反;求其补码时,再在其反码的末位加1. 1 0 1 1 0 1 0 0 原码 1 1 0 0 1 0 1 1 反码,符号位不变,数值位取反 1 +1 1 1 0 0 1 1 0 0 补码 反=11001011B 补=11001100B

#李废柄# JAVA中原码 反码 补码是什么意思?
(17686901060): 反码是将其2进制数每一位按位取反. 即1改为0,0改为1. 补码则不同. 正数的补码是其源码本身 负数的补码是其除符号位以外其他每一位按位取反再加一,符号位不变. 例如: 10进制数11: 源码:00001011; 反码:11110100; 补码:00001011; 十进制数-11: 源码:10001011; 反码:01110100; 补码:11110101;

#李废柄# 补码是什么意思补码、反码、源码、这三个的关系是什么 - 作业帮
(17686901060):[答案] 在二进制里 源码就是原始的数据 负数: 的反码是源码除符号位取反 补码是反码+1 正数: 源码=反码=补码

#李废柄# 请问,什么叫原码反码补码?说简单些 -
(17686901060): 原码表示法是机器数的一种简单的表示法.其符号位用0表示正号,用:表示负号,数值一般用二进制形式表示.设有一数为x,则原码表示可记作[x]原.补码可由原码得到.如果机器数是正数,则该机器数的补码与原码一样;如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加1而得到的.设有一数X,则X的补码表示记作[X]补.反码可由原码得到.如果机器数是正数,则该机器数的反码与原码一样;如果机器数是负数,则该机器数的反码是对它的原码(符号位除外)各位取反而得到的.设有一数X,则X的反码表示记作[X]反.

#李废柄# 请问+0和 - 0的原码,反码和补码分别是什么? - 作业帮
(17686901060):[答案] 如果是在字长为8位的计算机上, +0的原码是00000000 -0的原码是10000000 +0的反码是00000000 -0的反码是11111111 +0和-0的补码均为00000000