常用数据类型对应字节数

一:常用数据类型对应字节数
 
        可用如 sizeof char ), sizeof ( char *)等得出
 
        32位编译器:
 
        char :1个字节
        char *(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)
        short int : 2个字节
        int : 4个字节
        unsigned int : 4个字节
        float : 4个字节
        double : 8个字节
        long : 4个字节
        long long : 8个字节
        unsigned long : 4个字节
 
        64位编译器:
 
        char :1个字节
        char *(即指针变量): 8个字节
        short int : 2个字节
        int : 4个字节
        unsigned int : 4个字节
        float : 4个字节
        double : 8个字节
        long : 8个字节
        long long : 8个字节
        unsigned long : 8个字节、
 
二:
 
在16位环境下, int /unsigned int 占16位, long /unsigned long 占32位
  在32位环境下, int 占32位,unsigned int 占16位, long /unsigned long 占32位
何时需要使用:
   long int 范围是[-2^31,2^31),即-2147483648~2147483647,而unsigned范围是[0,2^32),即0~4294967295,所以常规的32位整数只能够处理40亿左右,当遇到比40亿大的多的数就要用到64位。
64位使用范围:
  不 同的编译器对64位整数的扩展有所不同,VC使用 __int64 /unsigned __int64 ,范围是[-2^63, 2^63)和[0,2^64),即-9223372036854775808~9223372036854775807与 0~18446744073709551615(约1800亿亿)。
注意点:
1、编译器不同导致使用64位的申明方式不同;
2、 long long / unsigned long long 一般是Linux下申明方式、如:G++
3、 __int64 /unsigned __int64 一般是Windows下使用64位的申明方式,如:VS
4、在赋值时需要注意加上ll进行显式赋值;
5、当进行64位与 32位的混合运算时,32位整数会被隐式转换成64位整数。
6、输出 printf ( "" );, long long 使用%lld输出, __int64 使用%I64d,无符号使用u替代d即可。
7、测试下来编译器一般都支持2种操作,不必太过纠结,怎么使用看个人喜欢。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值