| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5592 人关注过本帖
标题:[求助]-32769如何求补码
只看楼主 加入收藏
cxsw
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-3-18
收藏
得分:0 
这里应该他是循环的从32767在加一就产生了溢出,这杨应该有返回了-32768
是这样一直循环的!!

我是程序,程序是我!
2007-03-18 17:22
wozaixuec
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-3-16
收藏
得分:0 
刚学在这个问题上晕忽忽的
2007-03-18 17:23
cxsw
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-3-18
收藏
得分:0 
有错误,清指出

我是程序,程序是我!
2007-03-18 17:23
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
收藏
得分:0 
重新看了看后,我认为是这样的:
首先得到32769的原码1000 0000 0000 0001(16位)
由于是负数,进行补码运算:
1、前面补符号位1 =>1 1000 0000 0000 0001
2、除了符号位之外取反=>1 0111 1111 1111 1110
3、包括符号位加1 =>1 0111 1111 1111 1111
4、放入内存,丢失最高位1 得到正数32767

这次不知道对不对,高手来确认一下

“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2007-03-18 17:37
wozaixuec
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-3-16
收藏
得分:0 
关键是他是如何返回-32768
我想知道运算
过程
2007-03-18 17:39
wozaixuec
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-3-16
收藏
得分:0 
回复:(moonwalker)重新看了看后,我认为是这样的:...
谢谢各位的回答

这个看起来是没有问题

但还是希望高手把什么时候要保留符号未什么时候不保留符号位 什么时候要补上符号位

没有看到资料上有补符号位的相关问题
2007-03-18 17:46
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
收藏
得分:0 

没看懂15楼的问题,这个返回的不是-32768,是+32767,或者你想问-32768怎么返回?


“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2007-03-18 17:49
wozaixuec
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-3-16
收藏
得分:0 
我那个回的是11楼 时间差 呵呵
2007-03-18 17:51
xianlin_lea
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2006-10-6
收藏
得分:0 


我觉得各位不必过份苛求对计算过程的追究!

而且是要充分理解一下补码的"补"的含义:在有限的字长所能表达的绝对值最大的整数与所要求的负数的绝对值之间的差值!进而将"-"运算转化为"+"运算!

比如:现有时间是九点,而你的表只显示七点,当你要调对表的时间必然有两种方法,一是顺时针拨2(即+2);二是逆时针拨10(即-10).在这里可以说2就是10的"补"(即将"-10"运算转化为"+2"运算)

所以,当一个数超过了有限字长所能表达的数时,硬要将其划为"补"的形式,势必产生错误(无论你的方法是否正确!)

2007-03-18 18:03
无玩过界
Rank: 1
等 级:新手上路
威 望:2
帖 子:246
专家分:0
注 册:2007-2-20
收藏
得分:0 
一般为1最高位是表示负数,这不是理论上问题,而是机器问题。

2007-03-18 18:38
快速回复:[求助]-32769如何求补码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016584 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved