| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2132 人关注过本帖
标题:int类型续(原码,补码···请求指导啊
只看楼主 加入收藏
陨落
Rank: 2
等 级:论坛游民
帖 子:36
专家分:16
注 册:2009-6-27
结帖率:100%
收藏
已结贴  问题点数:40 回复次数:7 
int类型续(原码,补码···请求指导啊
前几天遇见int的取值范围问题,得到了论坛朋友们的帮助。谢谢啊。
然后我又看了点数制的东西,知道了各进制之间的转换。
但是还是有些问题困扰着我。
int是16位的,那么当int取最大值时它的补码就是0111111111111111 十进制为32767
                 当int取最小值时它的补码就是1000000000000000 十进制位-32768
问题一:虽然补码与原码的转换关系我是知道的,但是补码是什么?原码又是什么我不懂啊!它们有什么关系???(那些搜索出来的理论烦,所以想听听大家的意见啊,感激不尽啊)
问题二:因为对“位”这个字非常敏感,不是说cpu有16位,32位,64位吗?但是小弟真的不是很懂它是什么意思。     在百度里查了一下解释是这样的:计算机中的CPU位数指的是CPU一次能处理的最大位数。例如32位计算机的CPU一次最多能处理32位数据。当时我就在想了那十六位的最大二进制(其实也不知道是不是最大的)为1111111111111111(无符号位)的十进制为65535,是不是说16位的cpu只能处理的最大值是六万五千五百三十五????如果不是那又是什么??请各位朋友帮帮忙啊。
搜索更多相关主题的帖子: int 类型 请求 指导 
2009-08-07 00:32
smltq
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:566
专家分:400
注 册:2008-1-21
收藏
得分:10 
问题一:虽然补码与原码的转换关系我是知道的,但是补码是什么?原码又是什么我不懂啊!它们有什么关系???(那些搜索出来的理论烦,所以想听听大家的意见啊,感激不尽啊)
问题二:因为对“位”这个字非常敏感,不是说cpu有16位,32位,64位吗?但是小弟真的不是很懂它是什么意思。     在百度里查了一下解释是这样的:计算机中的CPU位数指的是CPU一次能处理的最大位数。例如32位计算机的CPU一次最多能处理32位数据。当时我就在想了那十六位的最大二进制(其实也不知道是不是最大的)为1111111111111111(无符号位)的十进制为65535,是不是说16位的cpu只能处理的最大值是六万五千五百三十五????如果不是那又是什么??请各位朋友帮帮忙啊。
问题一:为什么要求出补码是因为普通计算机的整数和定点小数都用补码表示,它们的关系我想你已经会了。
问题二:cpu一次能处理的最大位数,跟无符号数的范围没关系,不要搞混了。

简单的生活
2009-08-07 09:26
陨落
Rank: 2
等 级:论坛游民
帖 子:36
专家分:16
注 册:2009-6-27
收藏
得分:0 
回复 2楼 smltq

其实不是很懂。你能不能再给我讲一讲。原码?还有cpu的位数?
2009-08-07 14:06
mengfp
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:45
专家分:141
注 册:2009-8-5
收藏
得分:10 
原码是数字的二进制直接表示形式!补码是原码取反补位得到的。
cpu位数是指cpu运算时能够同时处理的数据的二进制形式的位数。
在计算机中数据一般都用补码表示
2009-08-07 17:28
devotion
Rank: 2
来 自:浙江杭州
等 级:论坛游民
帖 子:33
专家分:17
注 册:2009-8-3
收藏
得分:10 
正整数以原码形式放内存中 负整数以补码形式放内存中

在我的懷里你不用害怕失眠...
2009-08-07 17:43
wxjeacen
Rank: 7Rank: 7Rank: 7
等 级:禁止访问
帖 子:1291
专家分:628
注 册:2009-3-22
收藏
得分:10 
补码的补码就是原码。

正数的补码是本身。

负数的补码是除符号位取反加1。

引入补码的作用是为了方便cpu ALU逻辑单元把减法运算转换为加法。

如果我没理解错的话。

生命不熄,战斗不止.
2009-08-07 17:56
zhddragon
Rank: 5Rank: 5
等 级:职业侠客
帖 子:208
专家分:346
注 册:2009-5-14
收藏
得分:0 
补码是为了在计算机内部存储有符号数而引入的。只对有符号数有意义(原码和反码也是只对有符号数有意义),它把2进制的最高有效位解释为负权,从而可以表示包括正数和负数的有符号数。原码等于一个有符号数的绝对值对应的2进制值。

cpu的位数由数据总线的位数决定,cpu位数等于数据总线的位数(通常通用寄存器会与cpu位数相等),你上面的“计算机中的CPU位数指的是CPU一次能处理的最大位数”应该是指一个操作指令(cpu指令集中的操作指令,例如mov等)所能操作的最大位数。

[ 本帖最后由 zhddragon 于 2009-8-10 01:06 编辑 ]

身体是玩命的本钱
2009-08-10 01:01
西园竹
Rank: 5Rank: 5
等 级:职业侠客
帖 子:41
专家分:305
注 册:2009-8-8
收藏
得分:0 
补码可以将减法转为加法,简化CPU设计
CPU的位数定义不明确,总线宽度?一次最大能处理的数据宽度?
建议学习编程的时候结合着学习计算机硬件相关知识
2009-08-10 06:42
快速回复:int类型续(原码,补码···请求指导啊
数据加载中...
 
   



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

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