‘壹’ 原码和补码是什么意思
原码,没有任何意义。
补码具有:用正数代替负数,把减法变成加法运算的功能。
这样,计算机中,只需用一个加法器,便可进行加减运算了。
所以,在计算机中,只是使用补码。根本就不用原码和反码。
对于钟表,倒拨 4 小时,可用正拨 8 小时代替。
对于十进制数,减一,可以用 +99 代替。
比如:24-1 = 23
24 + 99 = (1) 23
忽略进位,只取低两位,结果就是相同的。
这里用来代替负数的正数,就叫做“补数”。
计算机用二进制,就叫做“补码”。
正数,直接运算即可,不用求补码。
负数的补码是:模+该负数。
八位二进制的模是:2 的 8 次方=256。
-1 的补码,就是:256-1 =255 = 1111 1111(二进制)。
-2 的补码,就是:256-2 =254 = 1111 1110(二进制)。
。。。。。。
-128 的补码,就是:256-128 =128 = 1000 0000(二进制)。
求补码,用公式就可得出,并不需要绕道原码反码符号位。
‘贰’ 什么是补码C++
正负数,存在计算机中,就称为:补码。
计算机中,只有加法器,没有减法器。
凡是负数或减法,都必须用其对应的补码,再用加法来完成。
比如十进制运算:
25-1=24
25+99=(1)24
忽略进位,这两种算法的功能,就是相同的。
99,就是-1 的补数。
借助于补数,就能用加法,实现减法运算。
计算机使用二进制,补数,就改称为:补码。
------------
在八位机中,0 的补码是:0000 0000。
-1 就是零减一:0000 0000-1 = 1111 1111=255(十进制)。
-2 的补码,就是:254 = 1111 1110。
-X 的补码,就是:256-X。
------------
补码,和原码反码,都没有任何关系。
‘叁’ 补码是什么请回答好吗
补码,就是二进制的补数。
什么是补数?通过常识,就可以理解了。
时钟,倒拨3小时,可用正拨9小时代替。
两位十进制数:00~99,共有100个。
那么,减一,可用+99代替。
24-1=23
24+99=(1)23
忽略进位,只取低两位,结果就是一样的。
那么,-1的补数,就是99。
同理,-2的补数,就是98。
。。。
利用补数,就可以把减法转化为加法运算。
--------
计算机用二进制,“补数”就改称为“补码”了。
八位二进制数:00000000~11111111,共有256个。
那么,减一,可用加11111111代替。
因此,-1的补码,就是11111111=255(十进制)。
同理,-2的补码,就是11111110=254(十进制)。
。。。
最后,-128的补码,就是10000000=128(十进制)。
--------
求负数的补码,公式就是:2的N次方+该负数。
可以用十进制来计算,不用写成二进制。
‘肆’ C语言里的补码是什么意思多举几个例子来解释.
补码,是在计算机内部,正负数的存放格式。
C 语言是高级语言。
用高级语言编程,是不用关心计算机内部的事的。
如果非要涉及计算机内部的细节,那就不是高级语言了。
很多教材书籍的作者,都没有弄明白:什么是高级语言。
计算机内部的码,有很多种了,要是讨论起来,C 语言就学不完了。
‘伍’ 什么是反码和补码
反码是数值存储的一种,多应用于系统环境设置;而在计算机系统中,数值一律用补码来表示和存储。
原码是计算机机器数中最简单的一种形式,数值位就是真值的绝对值,符号位位“0”时表示正数,符号位为“1”时表示负数,原码又称带符号的绝对值。为了方便整数和小数区别,整数的符号位与数值位之间用“,”隔开,小数的符号位与数值位之间用“.”隔开。
在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理,在这样的系统中减法问题也可以化成加法问题,只需把减数用相应的补数表示就可以了。把补数用到计算机对数的处理上,就是补码。
原码求补码
求给定数值的补码分以下两种情况:
1、正数
正整数的补码是其二进制表示,与原码相同。
例:+9的补码是00001001。(备注:这个+9的补码是用8位2进制来表示的,补码表示方式很多,还有16位二进制补码表示形式,以及32位二进制补码表示形式,64位进制补码表示形式等。每一种补码表示形式都只能表示有限的数字。)
2、负数
求负整数的补码,将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1。
同一个数字在不同的补码表示形式中是不同的。比如-15的补码,在8位二进制中是11110001,然而在16位二进制补码表示中,就是1111111111110001。以下都使用8位2进制来表示。
例:求-5的补码。
-5对应带符号位负数5(10000101)→除符号位外所有位取反(11111010)→加 00000001为 (11111011)
所以-5的补码是11111011。
‘陆’ 原码,反码,补码的定义是什么。
有符号数,有三种表示方法,即原码、反码和补码。
但是,在计算机系统中,数值一律用补码来表示和存储。
所以,在计算机系统中,原码和反码,都是不存在的。
----------
想要理解补码,要先从补数开始。
钟表的时针转一圈,周期是 12 小时。
倒拨 3 小时,就可以用正拨 9 小时代替。
9 就是-3 的补数。9 = 12-3。
同理,分针倒拨 X 分,就可以用正拨(60-X)代替。
60 是分针的周期。
------
对于两位十进制 0~99,周期就是一百。
这时,减一,你就可以用 +99 代替。
25 - 1 = 24
25 + 99 = (1) 24
结果取两位,舍弃进位。这两种算法,功能就是相同的。
99,就称为-1 的补数。
98,就是-2 的补数。
。。。
负数的补数 = 周期 + 该负数。
利用补数,就可以用加法,代替减法运算。
正数,不需要求补数。
------
计算机使用二进制,补数,就改称:补码。
八位二进制,共有 256 个数字。负数的补码 = 256+该负数。
16位二进制,共有 2^16 个数字。负数的补码 = 65536+ 该负数。
这就是补码的定义式。在你的书上,一定能找到这种算式。
------
在八位时:
-1 的补码是:256-1 = 255 = 1111 1111(二进制)。
-2 的补码是:254 = 1111 1110。
-3 的补码是:253 = 1111 1101。
。。。
-128 补码:128 = 1000 0000。
------
有了补码,计算机仅需要一个加法器,就可以加减通用了。
而原码和反码,不具备这种能力。
所以,原码和反码,究竟是怎么定义,就不必关心了。
因为,它们,毫无用处。
‘柒’ 补码是什么意思
1
补码
注意:此处的'=='是相等的意思。'='是赋值的意思。
在机器世界里:
正数的最高位是符号位0,负数的最高位是符号位1。
对于正数:反码==补码==原码。
对于负数:反码==除符号位以外的各位取反。
补码==反码+1.
原码==补码-1后的反码==补码的反码+1。(读完本文后,应该能够直观地认识到本式的正确性)
可以轻易发现如下规律:
自然计算:a-b==c.
计算机计算:a-b==a+b的补码==d.
c的补码是d.
通过此法,可以把减法运算转换为加法运算。
所以补码的设计目的是:
1.使符号位能与有效值部分一起参加运算,从而简化运算规则.
2.减运算转换为加运算,进一步简化计算机中运算器的线路设计.