C语言中无符号数据类型的用法
栏目分类:C语言教程 发布日期:2020-04-27 浏览次数:次
如果你确定你不会用到负数,那么请使用unsigned关键词。表明这个数据类型,是不带有符号位的。既然不带有符号位了,那么原本留给符号位的那一个二进制位,可以用来表示数值。
类型 | sizeof大小 | 二进制位数 | 取值范围算式 | 取值范围 |
---|---|---|---|---|
unsigned short | 2 | 2x8 = 16位 | 0 ~ +【2的16次方 - 1】 | 0 ~ +65,535 |
unsigned int | 4 | 4x8 = 32位 | 0 ~ +【2的32次方 - 1】 | 0 ~ +4,294,967,295 |
unsigned long | 4 | 4x8 = 32位 | 0 ~ +【2的32次方 - 1】 | 0 ~ +4,294,967,295 |
unsigned long long | 8 | 8x8 = 64位 | 0 ~ +【2的64次方 - 1】 | 0 ~ +18,446,744,073,709,551,615 |
TIPS: 怎样保证使用的整数在各个平台上范围统一:
由于不同平台的int算出来的sizeof可能不同,因此在数据范围特别敏感的情况下。请使用头文件stdint来定义你的变量类型。例如int32_t可以保证无论在上面平台上,都保证sizeof大小为32 / 8 = 4。
类型 | sizeof大小 | 二进制位数 |
---|---|---|
int8_t | 1 | 8位 |
int16_t | 2 | 2x8 = 16位 |
int32_t | 4 | 4x8 = 32位 |
int64_t | 8 | 8x8 = 64位 |
uint8_t | 1 | 8位 |
uint16_t | 2 | 2x8 = 16位 |
uint32_t | 4 | 4x8 = 32位 |
uint64_t | 8 | 8x8 = 64位 |
本文由IT教学网整理发布,转载请注明出处:http://www.itjx.com/jiaocheng/cyuyan/588.html