数据类型
类型转换
- 当赋给无符号类型一个超出它表示范围的值时,结果是初始值对无符号类型所能表示数值的总数取模之后的余数,例如:8bit的unsigned char可以表示0至255这256个数,那么当我们给一个unsigned char类型的变量赋值-1时,结果就是-1对256取模,也就是255;
又例如: 32bit的unsigned可以表示2^32 = 4,294,967,296个数值,那么当执行如下语句时首先i转换为unsigned类型,
-42 + 4,294,967,296 = 4,294,967,254;然后与u相加,结果为4,294,967,264
unsigned u = 10;
int i = -42;
std::cout << u + i << std::endl;
- 当赋给有符号数类型一个超出它表示范围的值时,结果是未定义的
字面值常量的各种写法
整型
- 八进制,数字0后面再加上数值,如024表示八进制的20;
- 十六进制,0x后面加上数值,如0x10表示十六进制的16;