计算机中,并没有原码和反码。
正负数据,在计算机中,只是以补码存放的。
以八位二进制来说明补码结构。
数字 0,就是以 0000 0000 存放。
数字 1,就是加上 1,得 0000 0001。
其它,继续加,就行了。
数字 127,就是 0111 1111。
------
数字-1,就是 0 减一,即:
0000 0000-1 =(借位 1) 1111 1111。
只保留八位,存放形式就是 1111 1111 (十进制 255)。
数字-2,就再减一,得:1111 1110 (= 254)。
数字-3,就再减一,得:1111 1101 (= 253)。
其它,继续减,即可... ...
数字-128,存放形式就是:1000 0000 (= 128)。
------
以上这些,就是补码。
八位补码可以表示:-128~+127。
计算公式:
负数的补码=【256+该负数】
正数的补码,就是正数本身
(如果需要二进制,你自己再变换。)
------
用补码代替负数,就可以把减法,转换为加法运算。
因此,计算机只要有一个加法器,就够用了。
例如: 7-3 = 4。
用补码的计算过程如下:
7 的补码=0000 0111
-3的补码=1111 1101
--相加-------------
得: (1) 0000 0100 = 4 的补码
舍弃进位,只保留八位作为结果,就是 4。
这就用加法,解决了负数以及减法的问题。
------
原码和反码,并没有这些功能。
所以,在计算机中,并没有原码和反码。
所谓的“取反加一”,由谁算呢?
计算机,可不做这些事。
在计算机系统中,数值,一律采用补码来表示和存储。
原码和反码,在计算机中,都不存在。
补码,就是一个“代替负数”的正数。
使用了补码之后,计算机中,就没有负数了,同时,也就没有减法运算了。
使用补码的目的,就是:简化硬件。
----------------
补码(正数),怎么就能代替负数呢?
用十进制来说明,比较容易理解。
你看:
25 - 1 = 24
25 + 99 = (一百) 24
你如果舍弃进位,+99 就能代替-1;加法,也就能代替减法。
同样,+98 也可以代替-2。
这些正数,就是“负数的补数”。
公式: 补数 = 负数 + 10^n, n 是补数的位数。
----------------------
计算机用二进制,补数,就叫做补码了。
对于 8 位 2 进制,补码 = 负数 + 2^8 = 负数 + 256。
所以,-1 的补码就是 255 = 1111 1111 (二进制)。
-2 的补码就是 1111 1110。
。。。
正数,不需要变换,必须直接参与运算。
所以,正数,它就没有补码。
----------------------
求 7-2 = 5,用补码计算如下:
+7 = 0000 0111
[-2]补 = 1111 1110
---相加-------------
得: (1) 0000 0101 = +5
舍弃进位,结果,就是非常正确的。
----------------------
补码,就是补码,与原码反码毫无关系。
补码,本来,是很简单的,也很容易理解的。
但是,从“原码反码取反加一。。。”来学习补码,就不容易理解了。
那么,“原码反码。。。”,老师总是讲这些,是想干什么呢?
这些老师脑子不好用,所以才弄出这些骚操作。
计算机的原码,反码,补码是怎么回事?可以举例说明吗?
原码、反码和补码是计算机中对数字二进制的三种表示方法。1、原码 原码(trueform)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。例如:用8位二进制表示一个数,...
什么是补码原码和反码
2、反码。是数值存储的一种,多应用于系统环境设置,如linux平台的目录和文件的默认权限的设置umask,就是使用反码原理。3、补码。在计算机系统中,数值一律用补码来表示和存储。原因在于使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。
原码反码和补码有什么区别?
原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值。正数的反码是其本身,负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。正数的补码就是其本身,负数的补码是在其原码的基础上符号位不变,其余各位取反, 最后+1(即在反码的基础上+1)。正数的原码,反码,补码都...
补码,原码,反码什么的。有什么作用啊!
反码:正数的反码就是原码,负数的反码等于原码除符号位以外所有的位取反 举例:int类型的 3 的反码是 00000000 00000000 00000000 00000011 和原码一样没什么可说的 int类型的 -3 的反码是 11111111 11111111 11111111 11111100 除开符号位,所有位,取反 解决了加减运算的问题,但还是有正负零之分,...
原码反码和补码有什么区别?
原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值,如\\r\\n[+1]原 = 0000 0001\\r\\n[-1]原 = 1000 0001\\r\\n正数的反码是其本身\\r\\n负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.\\r\\n[+1] = [00000001]原 = [00000001]反\\r\\n[-1] = [...
什么是原码、反码、补码?
机器数的反码可由原码得到。如果机器数是正数,则该机器数的反码与原码一样;如果机器数是负数,则该机器数的反码是对它的原码(符号位除外)各位取反而得到的。设有一数X,则X的反码表示记作[X]反。反码通常作为求补过程的中间形式,即在一个负数的反码的未位上加1,就得到了该负数的补码。①...
反码补码原码是什么意思
原码是最基本的编码方式,适用于简单的数值表示和计算。反码是在原码的基础上发展而来,主要用于解决正负数运算问题。补码是在反码的基础上进一步改进,主要用于解决计算机中数值的范围问题,使得计算机能够表示所有的整数。2、编码方式 原码直接将数值的二进制形式作为原码,正数的原码与其二进制形式相同,负数...
电脑中原码和补码是什么关系?
原码,反码,补码是机器存储一个具体数字的编码方式。原码跟补码之间的关系是:正数的补码与原码相同,负数的补码为 其原码除符号位外所有位取反(得到反码了),然后最低位加1。在计算机系统中,数值一律用补码来表示和存储。使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。原...
原码、反码、补码
原码就是这个数本身的二进制形式。 例如0000001 就是+11000001 就是-1 正数的反码和补码都是和原码相同。 负数的反码是将其原码除符号位之外的各位求反 [-3]反=[10000011]反=11111100 负数的补码是将其原码除符号位之外的各位求反之后在末位再加1。 [-3]补=[10000011]补=11111101 一个数和它的补码是可逆...
什么是原码、补码和反码?
原码、补码和反码是计算机中表示数值的基本方式,它们之间的关系可以通过以下公式进行计算:原码 = 反码 + 1 反码 = 补码 - 1 补码 = 2^n - 1,其中n为数值的位数 例如,假设我们要计算一个8位有符号整数的原码、补码和反码,则可以按照以下步骤进行计算:1. 将8位二进制数10000001转换为十进制...