鱼C论坛

 找回密码
 立即注册
查看: 3504|回复: 0

运算求助,几种运算合想起来我头晕了,速度求帮助。

[复制链接]
发表于 2013-7-21 17:48:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Jany 于 2013-7-21 17:52 编辑

老师们好,请问下算法中对于负数补吗形式,我搞晕了,求明示,比如,在与【&】运算中,举例如下:
-5&-9与运算
1111 1011            -5的补码
1111 0111            -9的补码

按位与 得出结果为1111 0011 【该数为负数 的补码】
该负数原码 =补码-1 再取反码  
减1后:1111 0010
取反:  1000 1101

最终结果为-13;最高为1,为负数。

可在位移运算中,举例如下:
-60位移运算
-60的补吗为11000100,比如右位移>>2,结果为11110001,负数补1,整数补0,有的取决于系统。
可这里的结果11110001这么二进制运算转十进制结果怎么不一样啊,在VC中运算为-15,可结果11110001转十进制怎么会是-15
【说明:右移相当于除以2的N次方,左移相当于乘以2的N次方】

还有上面的与【&】运算和下面的位移运算,怎么好像补吗计算了,一个要转回来,一个怎么不用啊
比如与运算结果
按位与 得出结果为1111 0011 【该数为负数 的补码】
该负数原码 =补码-1 再取反码  
减1后:1111 0010
取反:  1000 1101
最终结果为-13;最高为1,为负数。

它的补吗运算后再反回到负数原码,而位移就直接用补吗来计算,还有几个运算我一起想起来计算想最终分清几种运算的区别,可就是绕不出来,越想越模糊,希望老师们帮助下,理理清,谢谢。
【知道怎么补吗,可补吗形式运算真的很纠结。】
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-18 20:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表