整型之具体字节数

        可以表示整数类型 关键字包括 char  short   int  long  long  ,这些整数类型分配的字节大小 会根据  机器的字长(32/64位) 和编译器有所不同

     标准规定,int 的表示范围不能小于 short 的表示范围,long 的表示范围不能小于 int 的表示范围。这就是说 short 型变量占用的空间可能比 int 型变量少,而 long 型变量占用的空间可能比 int 型变量多。16 位(bit)的计算机中,int 和 short 一般都是 16 位,而 long 是 32位;32位的计算机中,short一般是 16 位,而long和int是 32位。TC2(16位的编译器)中,int是16位的;而 Dev-C++(32 位的编译器)中,int 是 32 位的。

 目前,long long 一般 64 位,long 是 32 位,short 是 16 位,而 int 或者 16 位,或者 32 位。具体某个编译器到底使用多少位来表示这些类型,我们可以用运算符 sizeof 来获取。例如:
          printf( "%d\n", sizeof(int) );  
/* 输出 int 的位数 */
          printf( "%d\n", sizeof(long) );  /* 输出 long的位数 */
    sizeof 运算符返回其操作数占用空间的大小,以字节(Byte)为单位


但目前面试请参考下面:

int的长度由处理器(16位,32位,64位)和编译器决定。

首先从处理器来讲 :16位处理器中的int 占有16位 即2个字节

                                32位处理器中int占有32位 即4个字节

                                 64位处理器中int占有64位 即8个字节

附录:

数据类型特别是int相关的类型在不同位数机器的平台下长度不同。C99标准并不规定具体数据类型的长度大小,只规定级别。作下比较:

16位平台

char         1个字节8位

short        2个字节16位

int            2个字节16位

long         4个字节32位

指针         2个字节

32位平台

char         1个字节8位

short        2个字节16位

int            4个字节32位

long         4个字节

long long 8个字节

指针         4个字节

64位平台

char         1个字节

short        2个字节

int            4个字节

long         8个字节(区别)

long long 8个字节

指针        8个字节(区别)

 

 

 

  数据模型

(LP32 ILP32 LP64 LLP64 ILP64 )

32位环境涉及"ILP32"数据模型,是因为C数据类型为32位的int、long、指针。而64位环境使用不同的数据模型,此时的long和指针已为64位,故称作"LP64"数据模型。

现今所有64位的类Unix平台均使用LP64数据模型,而64位Windows使用LLP64数据模型,除了指针是64位,其他基本类型都没有变。(注释:相对于windows32操作系统来说 只有指针改编成64位,int long 都还仍然是32位)

 TYPE               LP32  ILP32  LP64  ILP64  LLP64

CHAR                8         8          8         8         8

SHORT             16       16        16       16       16

INT                  16       32        32        64      32

LONG               32       32        64       64       32

LONG LONG     64       64        64       64       64

POINTER          32       32        64       64       64     

 

参考: http://my.oschina.net/u/166231/blog/30622

http://kooyee.iteye.com/blog/349491



  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值