社区
汇编语言
帖子详情
为什么 补码的补码是原码??
cvrli
2011-01-20 08:41:35
为什么 补码的补码是原码??
请解释详细 明了??
...全文
5330
29
打赏
收藏
为什么 补码的补码是原码??
为什么 补码的补码是原码?? 请解释详细 明了??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
29 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ywt451997432
2011-04-15
打赏
举报
回复
用代数带入消元法:
假设:
原码 = 01
因为:
补码 = 反码 + 1 = 10 + 1 = 11
补码的补码 = 11的补码 = 11的反码 + 1 = 00 + 1 = 01
所以:
补码的补码 = 原码
sdb134
2011-04-14
打赏
举报
回复
还没结贴,赶上了啊,!这个问题,我们老师讲得蛮多的。
这就要回到求补的过程了:
1.一个数求补X,当它为正数时,即为它本身
当它为负数时,用2^n-|x|,当再求补时,又用2^n-(2^n-|x|)=|x|,
加上前面的负号,即为它本身,
2.求补的另一种方法,也就我们常背的,符号位不变,其它位取反加1。
yhshion
2011-04-12
打赏
举报
回复
说的已经很明确了
[Quote=引用 2 楼 shzhfu 的回复:]
这句话严格地讲是有点问题的。
这里所说的“补码”实际上是“求补”---即“取相反数”的意思,“原码”则指它的绝对值了。
所以一个正数(比如是n)的“补码”是指用按位取反再加1的运算得到的数,其实就是它的相反数(-n)。这个(-n)的“补码”指再按位取反再加1,得到了(-n)的相反数,这便又是n了。
[/Quote]
wangzanzitong
2011-04-07
打赏
举报
回复
-128=10000000 只有7个0?
实际为00000000 8个0,1被自然丢失,因为一个字节是8位。
所以0就是代表负数的-128!!!
wangzanzitong
2011-04-07
打赏
举报
回复
补码的补码是原码
对于正数;正数的补码是它本身,它本身(正数的补码)的补码当然还是它本身。正数的补码规定就是等于原码,所以补码的补码是原码。
对于负数,-1原码=11 11补码=00+1=01(连同符号位一起求反再+1)
01再求补:01=10+1=11(连同符号位一起求反再+1)
11=11所以补码的补码是原码
猜想:只要输入为负数,1.用软件方法直接转换为补码形式(便于作减法运算,减法用加法做,加法器在cpu中为一个异或门电路)
2.不用软件方法,用硬件实现:遇到负数把负数各位(含符号位)送入一个反相器(按字长,实为多个相同的反相器)反相相当于取反。
yxinxin1989
2011-04-04
打赏
举报
回复
1
数学证明:
1.正数的补码的补码是原码不用说了,很简单
2下面说说为什么负数补码的补码是原码.
证明:设x(负数的原码)为n位,x按位取反加1得(求补)得到y,y按位取反加1得(求补)得到z.
问题就是证明x=y!
因为:x+y=2^n;y+z=2^n
于是必有:x=z
shzhfu
2011-04-04
打赏
举报
回复
[Quote=引用 22 楼 night_dystar 的回复:]
正数的补码还是它本身,所以它补码的补码还是自己
负数的补码是将各个二进制位取反再加1,负数的补码的补码就相当于取反加1,再取反加1(),这样两次取反,一加一减,结果还是它本身。
[/Quote]
“对于二进制位运算,加1和减1是一样的”
?能一样吗?
这样两次取反,一加一减
,这两次取反可不是“取反后马上取反”,是“取反后加1再取反”,能和“取反再取反”等价吗?
另:为什么喜欢把这些很久的并且好多是已经有明确答案的帖子再翻出来?
xiaoD
2011-04-03
打赏
举报
回复
正数的补码还是它本身,所以它补码的补码还是自己
负数的补码是将各个二进制位取反再加1,负数的补码的补码就相当于取反加1,再取反加1(对于二进制位运算,加1和减1是一样的),这样两次取反,一加一减,结果还是它本身。
rapanda
2011-03-26
打赏
举报
回复
实践出真知,自己测试看看,不就明白了
Frog1228
2011-03-19
打赏
举报
回复
其实你可以举个例子,自己推导一下,就可以知道结果了,就跟数学上的代数法一样。如果形象一点地认识的话,可以认为是“负负得正”。
Frog1228
2011-03-19
打赏
举报
回复
[Quote=引用 5 楼 linux_mary_me 的回复:]
好好看数电
[/Quote]
应该是微机原理吧。。。
runrising
2011-03-18
打赏
举报
回复
举个通俗易懂的例子,你见过家里的机械钟吧,小时的周期是12个小时,当现在2点时,你想把它调到5点,一种你是顺时针拨三个时刻,另一种是逆时针拨9个时刻,顺时针约定为-,逆时针为+,那么-3的补码就是=+9;补码的补码是原码,相当于反复播时针嘛,这样很通俗懂,希望你能理解
nitsunye
2011-03-17
打赏
举报
回复
[Quote=引用 4 楼 cvrli 的回复:]
为什么 -128=10000000 如何算
在计算机真实运算
不要 讲取反加以模式
[/Quote]
n位二进制补码计算十进制值:-2的n-1幂+2的n-2幂+...+2的零次幂
nzk76
2011-03-17
打赏
举报
回复
类似数学集合中补集的概念,补集的补集是原集合。
用户 昵称
2011-03-15
打赏
举报
回复
心算一下就是了。
zjmcly
2011-03-12
打赏
举报
回复
你首先要知道补数的概念。补码的存在是为了方便计算机的加法运算。
goodider
2011-03-05
打赏
举报
回复
有公式的。还有你要找到个坐标图看就更清楚了。
fqrfans
2011-03-04
打赏
举报
回复
1
一个数设为x,则补码为~x+1
~[(~x)+1]+1=x
证明:~[(~x)+1}=x-1
(~x)+1=~(x-1);同时取反“~”
~x+1=~x+1;对于二进制成立
safish
2011-02-13
打赏
举报
回复
正数的原,反,补都是一样
负数的反码: 除最高的符号位(1)外, 其它数字全部取反,0变1,1变0
负数的补码: 负数的反码 + 1
yinviky
2011-01-22
打赏
举报
回复
正数的补码不是本身么?
加载更多回复(8)
为什么
补码
的
补码
就是
原码
?二进制里为什么减一取反和取反加一等价?
首先先理解这句话的意思,“(1)
补码
的(2)
补码
就是
原码
”,其中第一个标注的"
补码
",就是名词
补码
,而第二个标注的"
补码
",是个代称,含义就是取反加一,这句话完整的意思是一个数的
补码
,取反加一后就还原成
原码
了 一般来说,
补码
就是
原码
取反加一,还原成
原码
的时候应该先减去一再取反。其实在二进制里,"减一取反"和"取反加一"等价,所以我们可以这么做 为什么等价呢? 假设一个N位的二进制数,可表示的...
原码
补码
相互转换
1.基础概念
原码
:为十进制数的二进制表示,正数符号位为0,负数符号位为1 例如:10的二进制为00001010,-10的二进制为10001010
补码
:为
原码
的计算码,通俗的讲,计算的时候用
补码
,看大小的时候用
原码
2.
原码
转换成
补码
正数
原码
转
补码
:正数的
补码
,与
原码
相同 例如,10的
原码
为00001010,
补码
也是00001010 负数
原码
转
补码
:负数的
补码
:符号位不变,其余各位按位取反,取反后整体加1 例如:-10的
原码
为10001010 ...
补码
转化为
原码
,
补码
转化为负
补码
的快速转换
前提知识: 1、一个负整数(或
原码
)与其补数(或
补码
)相加,和为模。 2、对一个整数的
补码
再求
补码
,等于该整数自身。 3、
补码
的正零与负零表示方法相同。 总之,正整数的
补码
是其二进制表示,与
原码
相同。求负整数的
补码
,将其
原码
除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1。 正整数的
原码
反码
补码
一样; 负整数的反码是除了
原码
符号位其他位全部取反,
补码
是反码加一。 备注:计算中主要采用的是
补码
,就是将减法计算变成加法计算,反码是求
补码
的中间状态此外。
补码
与
原码
相互转换,其运算过
【原创】什么是
原码
、反码、
补码
?
示例中均为8-bit的整数。它的可表示范围包括-128到127,总共256(=2^8)个整数。:将最高位作为符号位(0表示正,1表示负),其它数字位代表数值本身的绝对值的数字表示方式。如果是负数,则将数字的反码加上1(相当于将
原码
数值位取反然后在最低位加1)。如果是负数,符号位不变,其余各位取反,则得到这个数字的反码表示形式。正数的
原码
、反码、
补码
完全一样,只有负数需要按照以上规则计算。
原码
、反码、
补码
是计算机中对数字的二进制表示方法。如果是正数,则表示方法和
原码
一样。如果是正数,则表示方法和
原码
一样。
什么是
原码
、反码和
补码
在计算机当中都是使用
补码
来进行计算和存储的。
补码
很好的解决了反码负数不能跨零计算的弊端,并且
补码
还可以记录一个特殊的值-128,这个数据在1个字节下是没有
原码
和反码学习了
原码
、反码和
补码
的知识之后,我们就可以了解到,Java当中所有的基本数据类型。比如整数类型的数据类型,存储的数都是同样的,区别是在于什么地方,假设存储的值都是10基本数据类型值字节数内存中实际存储的值byte10100001010short102int104long108隐式类型转换强制类型转换。.........
汇编语言
21,458
社区成员
41,603
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章