论坛: 编程破解 标题: 补码问题 复制本贴地址    
作者: sniper167 [sniper167]    论坛用户   登录
3+4=00000011+00000100=00000111=7 
3-4=3+(-4)=00000011+11111100=11111111   
11111111取反加一等于1,所以11111111就是-1

为何11111111还要取反加1才在转换十进制??
是不是因为首位为1,表示是负数,所以要取反加1后才转换成十进制?

地主 发表时间: 04-02-22 11:32

回复: lwei889 [lwei889]   论坛用户   登录
在二进制里,首位表示的是符号 1代表‘-’0代表 ‘+’

B1层 发表时间: 04-02-22 12:40

回复: 286 [unique]   版主   登录
你的理解是正确的。
PC机中,正数用原码表示,负数用补码表示。
计算机中-1就是11111111。
而你要用平时我们理解的数学方式表示,当然要转成原码并在前面加个负号了。

子木:
  你说的不对,不是1代表负号,0代表正号,而是1代表负数,0代表正数。该位也参与数据大小的比较和计算。



B2层 发表时间: 04-02-23 09:15

回复: lwei889 [lwei889]   论坛用户   登录
谢谢指正,我想表达的意思就是 首位表示的是符号位,希望我的答案没有误导别人!

B3层 发表时间: 04-02-23 18:20

回复: sniper167 [sniper167]   论坛用户   登录
谢过各位

B4层 发表时间: 04-02-23 21:57

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号