在写c++的时候发现自己并不知道int等基础类型表达的数据范围是多少了,同时也不知道项目中经常使用到的u8等是表示什么。以这篇文章作为笔记。
基础数据类型表示范围
short表示有符号短整数,占2字节,共16比特,将第一位作为符号位,因此最大能表示2^15-1的数,最小能表示-2^{16}。
int表示有符号整数,占4字节,共32比特,将第一位作为符号位,因此最大能表示2^31-1的数,最小能表示-2^{32}。并且值得注意的是,这个数的大小大概是大于10^{10}的,这点在某些解题中会用到。
long在32位系统和64位系统中都和int等同。
long long表示有符号长整数,占8字节,这个数就非常大了,因此足够使用。
无符号整数
下面来介绍u族。u表示无符号,后面的数字表示比特数。
u8:表示8比特即1字节,可对应char类型。因为没有符号位,所以它可以表示0~2^{8}-1。
u16:16的无符号整数,对应无符号short类型。
u32:32比特无符号整数,对应无符号int类型。
u64:64比特无符号整数,对应无符号long long。