Chinaunix

标题: 一个很简单的问题 [打印本页]

作者: gzKen    时间: 2005-11-04 17:24
标题: 一个很简单的问题
搞糊涂了。。。

  类型说明符    数的范围     
  int       -32768~32767  
  long int  -2147483648~2147483647 
  unsigned long  0~4294967295   

是不是表示 int i;  给 i 赋值,最大不能超过32767? 如果是long int i; 则给 i 赋值大小不能超过
2147483647?
如果超过这个值会怎么样?
作者: wuname    时间: 2005-11-04 17:27
晕~~
为什么不喜欢看书呢?!!
作者: gooderfeng    时间: 2005-11-04 17:30
#include<limit.h>
这个头文件里面有说明。
作者: mik    时间: 2005-11-04 17:30
原帖由 gzKen 于 2005-11-4 17:24 发表
搞糊涂了。。。

  类型说明符    数的范围     
  int       -32768~32767  
  long int  -2147483648~2147483647 
  unsigned long  0~4294967295   

是不是表示 int i;   ...



int 与 long int 是一样的,都是 32 位,可以赋值的范围是 0xFFFFFFFF。

signed 与 unsigned 很多时候只是看你(如何是读它,或存它),本质上没区别

int i = 0xFFFFFFF8;  

你可以认为它是 signed 也可以认为是 unsigned,关键是你如何去读它


超过,应该会有警告,结果会是:截断。

[ 本帖最后由 mik 于 2005-11-4 17:32 编辑 ]
作者: renstone921    时间: 2005-11-04 17:30
找本微机原理看一下补码.
作者: mik    时间: 2005-11-04 17:33
原帖由 renstone921 于 2005-11-4 17:30 发表
找本微机原理看一下补码.



看补码,和这里的讨论扯不上边
作者: lllll    时间: 2005-11-04 17:39
现在有32,64位的机器,应该是跟机器字有关,还有你编译程序时候带的参数有关,选32位还是64位




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2