| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 966 人关注过本帖
标题:遇到一个基础性的问题(关于原码,补码的相关问题)。求解!
取消只看楼主 加入收藏
shentao
Rank: 1
来 自:安徽省六安市
等 级:新手上路
帖 子:34
专家分:8
注 册:2012-10-13
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
遇到一个基础性的问题(关于原码,补码的相关问题)。求解!
这句话是我从谭浩强《c程序设计》第四版上看到的。他说16位(有符号数)二进制数用补码表示最大数是:0111111111111111,这个我可以理解。但是他又说16位二进制数用补码表示最小值为:1000000000000000,这我就不能理解了。
  我的想法是:最大的数加负号不就是最小的数了吗?因此16位最大值是+11111111111111,加上负号便是-111111111111111,然后转换成补码便是1000000000000001了。   
  我想我肯定是我错了,但是就是看不明白谭老爷子这句话。
请高手解答。!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
如果有书的同志,请参阅:p44页下方的说明区域。
搜索更多相关主题的帖子: 最大的 二进制 老爷子 最大值 
2012-11-20 21:32
shentao
Rank: 1
来 自:安徽省六安市
等 级:新手上路
帖 子:34
专家分:8
注 册:2012-10-13
收藏
得分:0 
求解。。。。。

C语言新手……努力中!
2012-11-20 21:32
shentao
Rank: 1
来 自:安徽省六安市
等 级:新手上路
帖 子:34
专家分:8
注 册:2012-10-13
收藏
得分:0 
还是看不明白。能再详细点吗?你的意思说在c语言中补码的最大数加1便是最小数码?
例如:0111111111111111+1=1000000000000000;???

C语言新手……努力中!
2012-11-20 21:47
shentao
Rank: 1
来 自:安徽省六安市
等 级:新手上路
帖 子:34
专家分:8
注 册:2012-10-13
收藏
得分:0 
唉,亲你不知道,那本书我从0页开始到43页就没有不懂的。原本打算要把谭老爷子的书全部啃下去。可是现在就遇到难题了。问了三个老师,有两个老师不知道,还有一个老师说不清楚!!急呀!!

C语言新手……努力中!
2012-11-20 21:53
shentao
Rank: 1
来 自:安徽省六安市
等 级:新手上路
帖 子:34
专家分:8
注 册:2012-10-13
收藏
得分:0 
谢谢你(一个孩子),

C语言新手……努力中!
2012-11-20 22:12
shentao
Rank: 1
来 自:安徽省六安市
等 级:新手上路
帖 子:34
专家分:8
注 册:2012-10-13
收藏
得分:0 
我还是想听高手讲解。这样能让我跟明白。

C语言新手……努力中!
2012-11-20 22:16
shentao
Rank: 1
来 自:安徽省六安市
等 级:新手上路
帖 子:34
专家分:8
注 册:2012-10-13
收藏
得分:0 
回复 8楼 cyhdahua
请问:-1的补码不是:11111111吗?加1的话不就会溢出了吗?(不论我用多少位存储-1)如果加1都会溢出的。

C语言新手……努力中!
2012-11-20 22:19
shentao
Rank: 1
来 自:安徽省六安市
等 级:新手上路
帖 子:34
专家分:8
注 册:2012-10-13
收藏
得分:0 
回复 14楼 cyhdahua
神啊!我都听不明白,难道我高中时候计算机原理都学到狗肚子里了吗?

C语言新手……努力中!
2012-11-21 20:56
shentao
Rank: 1
来 自:安徽省六安市
等 级:新手上路
帖 子:34
专家分:8
注 册:2012-10-13
收藏
得分:0 
回复 18楼 cyhdahua
可以重新问你一个问题吗?
问题如下:
规定机器字长为8位,请写出-128的补码!
我遇到的问题是这样的:
比如:把128除以基数得到的是10000000(这里的1不是负号),但是根据原码转换成补码的定义(负号为1,其余各位取反+1)但是以这样结果就是:110000000,结果是明显不对的。。
请问你知道这是怎么回事吗?

C语言新手……努力中!
2012-11-22 16:12
shentao
Rank: 1
来 自:安徽省六安市
等 级:新手上路
帖 子:34
专家分:8
注 册:2012-10-13
收藏
得分:0 
回复 20楼 cyhdahua
老师(达者为师)你好!请问你是不是想告诉我,-128的表示在计算机中因为其使用的场合不同,而不同。比如说:在用字节形式来存储在计算机中它的二进制补码形式是(1000 0000)的形式?并且此时对于超出的便可以省略了。而在计算机中进行传输的时候它用(1111 1111 1000 0000)进行表示吗?
所以我在求-128的二进制补码的时候要论事而为!

以上是我的浅陌理解!希望你能指正!并且我对这几天没回复你表示抱歉!因为最近班里面太忙了。

C语言新手……努力中!
2012-11-27 22:01
快速回复:遇到一个基础性的问题(关于原码,补码的相关问题)。求解!
数据加载中...
 
   



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

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