计算机原码反码补码怎么算计算机原码反码补码计算方法:1、原码原码就是符号位加上真值的绝对值,不是计算机来区别原码、补码,负数的反码是在其原码的基础上, 符号位不变,正数的原码、反码和补码,计算机如何区别原码与补码使用补码的意义在于:可把负数变正数,不涉及原码反码符号位,负数的补码是在其原码的基础上,下面按照八位二进制来说明补码的意义。
电脑中原码和补码是什么关系
电脑中,只有补码。并没有原码和反码。正数的原码、反码和补码,都是相同的。如果绝对值相同,则有,正数的补码+负数的补码=0。那么,负数的补码=0-正数的补码。
计算机原码反码补码怎么算
计算机原码反码补码计算方法:
1、原码
原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。比如如果是8位二进制:
[+1]原 = 0000 0001
原 = 1000 0001
第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是:[1111 1111 , 0111 1111]
即[-127 , 127]
原码是人脑最容易理解和计算的表示方式。
2、反码
反码的表示方法是:正数的反码是其本身。负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。
[+1] = 原 = 反
= 原 = 反
可见如果一个反码表示的是负数,人脑无法直观地看出来它的数值。通常要将其转换成原码再计算。
3、补码
补码的表示方法是:正数的补码就是其本身。负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1。(即在反码的基础上+1)。
[+1] = 原 = 反 = 补
= 原 = 反 = 补
对于负数,补码表示方式也是人脑无法直观看出其数值的。通常也需要转换成原码在计算其数值。
扩展资料:
原码,反码和补码是完全不同的。既然原码才是被人脑直接识别并用于计算表示方式,为何还会有反码和补码呢?
首先,因为人脑可以知道第一位是符号位,在计算的时候我们会根据符号位,选择对真值区域的加减。但是对于计算机,加减乘数已经是最基础的运算,要设计的尽量简单。计算机辨别“符号位“显然会让计算机的基础电路设计变得十分复杂。于是人们想出了将符号位也参与运算的方法。我们知道,根据运算法则减去一个正数等于加上一个负数,即: 1-1 = 1 + (-1) = 0 , 所以机器可以只有加法而没有减法,这样计算机运算的设计就更简单了。
于是人们开始探索将符号位参与运算,并且只保留加法的方法。
计算机如何区别原码与补码
使用补码的意义在于:可把负数变正数,可把减法变加法。
从这个实用性来讲,计算机中,只是用补码。原码根本就不存在。
-------
计算机,是执行程序的。程序,都是由人,编写的。
所以,不是计算机来区别原码、补码。
而是由人,来区别。
-------
如果限定,只是使用两位十进制数 0~99,共有一百个。
那么,减一,就可以用 +99 代替:
24 - 1 = 23
24 + 99 = (1) 23
只保留两位,忽略进位,结果就是相同的。
99,就称为-1 的补数。
-------
看到了吗? 出现了进位。
如果你忽略了进位,实际上就是减法运算!
--这时,99 就是补数,是当做-1 来用的。
如果不忽略进位,结果就是 1 百 23,这还是加法运算。
--此时,99,就是正常的数字。
。。。。。。
一个代码,到底是原来的数字,还是代表负数?
就看你怎么对待它了。
这些都是由编程人,来决定。
计算机,它才不管这些。
原码,反码,补码怎么解释
正负数,在计算机中,只是用【补码】来存储。
而原码和反码,在计算机中,并不存在。
下面按照八位二进制来说明补码的意义。
十进制数 0,存放形式,就是二进制 0000 0000。
十进制数 +1,就加上 1,二进制是 0000 0001。
十进制数 +2,就再加 1,二进制是 0000 0010。
。。。
十进制数 +127,加 1加 1...,就加到了 0111 1111。
+127,这就是最大数值。
----------
负数怎么办? 你就从 0,依次递减吧。
十进制数 0,以二进制 0000 0000 存放。
十进制数 -1,就减去 1,得 1111 1111 = 255(十进制)。
十进制数 -2,就再减 1,得 1111 1110 = 254。
十进制数 -3,就再减 1,得 1111 1101 = 253。
。。。
十进制数 -128,减 1减 1...,得 1000 0000 = 128。
不要再减了,这就是最小值了。
(你再继续减,就是 0111 1111,这就是+127 了。)
因此,最小数值就是-128。
----------
总结:
零和正数:直接用二进制存放。
负数:存放形式是【256+这个负数】。
这套存放格式,就是所谓的【补码】。
求【补码】,就是这么简单。
完全不用绕到“原码反码符号位”那么远。
可以用十进制来计算。如果需要二进制,你就再转换一下。
用这个方法,不涉及原码反码符号位,就少了不少麻烦事。
----------
为什么负数用补码存储?
利用补码,可以把减法运算,转换成加法。
(所以,在计算机中,有一个加法器,就够用了。)
例如,6-2 = 4,在计算机中,用补码代替数字,运算如下:
6 的补码是 0000 0110
-2 的补码是 1111 1110
--相加-------------
得: (1) 0000 0100 (= 4 的补码)
(括号中的 1,是进位,舍弃不要了。)
注意:
如果运算结果超出了-128~+127 的范围,结果将是错的。
这种现象称为“溢出”。
再注意一下:进位,并不等于溢出。
---------
因为补码的这个特性,所以,在计算机中,只是使用补码存放数据。
而原码反码,在计算机中,都是不存在的。
所以,大家,完全不必在原码反码 上浪费时间精力。