一、基本内置类型
- 内置类型=算术类型+空类型
算术类型=字符、整型数、布尔值、浮点数 - 大多数机器的字节由8bit构成,1byte=8bit,1word=32 or 64bit=4or8byte
- 默认不带unsigned的都是有符号的,与其他整形不同char不分为了三种:char、unsigned char、signed char,char具体属于哪类要取决于编译器。范围为-128到127
如何选择类型?
- 当明确知晓数值不可能为负数时,选用无符号。
- 使用Int执行整数运算,short太短而long一般和int有一样的尺寸,如果数值超过了int的表示范围,选用long long。
- 算术表达式中不要使用char或者bool,因为char在一些机器上是有符号的,而在领土一些机器上又是无符号的。
- 执行浮点数运算选用double,因为float精度不够而且双精度和单精度的计算代价相差无几。.
1.类型转换
- 当赋给一个unsigned超出它表示范围的值时,结果是初始值对无符号类型表示数值总数取模后的余数。(取模:如unsigned char c = -1;则加上被除数整数倍再运算:(-1+256)%256=255;具体见我的另一篇博客:-1对256取模
- 当赋给带符号数类型一个超出他范围的值时结果是未定义的。
- 有符和无符混用:有符先->无符