C++ Primer 4 CPP Note 2.1.1 整型和浮点型
2.1.1 整型
整型分为:整数,字符,布尔值
字符类型:char 、wchar_t.wchar_t类型用于扩展字符,比如汉字和日语.
short int long 表示整数short半个机器字(word)长,int类型为一个机器字(32bit)
long 为一个或者两个机器字长.
(在32位机中int和long通常是相同的)
bool 类型:可以将算术类型的任何值赋给bool对象,0值算术类型代表false, 任何非0代表true. (P1.4.1)
1.带符号和无符号类型
整型(除bool)可以使带符号(signed)和不带符号(unsigned)的.带符号的可以表示负数,不带符号的不能表示负数.
整数 int short long 默认带符号.和整数不同char有三种类型 : char 、signed char、unsigned char.
2.整型值表示
unsigned 中所有的位都表示数(只表示正数)
signed 有一位作为符号位: 1表示负数, 0表示正数或者值为0.
例如:8bit的unsigned取值是 0~255
8bit的signed取是 -128 ~ 127 ,但也有编译器实现的是 -127 ~ 127
3.整型赋值
只谈论在超出取值范围的时候.
unsigned : 求模. 例如将336存入到8位的 unsigned char 中那结果将是 336%256=80.
在C++ 中如果将负数赋值给unsigned(正数)的时候:将-1赋值给8bit的 unsigned char 结果是-1%256=255.
signed :这将由编译器决定,但大多数处理是和unsigned是一样的.
2.1.2浮点型
float : 32bit
double : 64bit
long double : 96bit or 128bit
建议:
/* 少使用short、char通常用于储存字符、有些系统int和long都是32bit,有些系统long是64bit.
在运算时如果long为64bit,那么long比int会更影响性能.
关于浮点型:推荐使用double,因为它精度高.double和float的性能差别不大.
*/