- C语言的整型有 char、 short、 int、 long、 long long等几种。除char类型以外的其他类型如果没有明确写unsigned 或 signed关键字,都是表示signed, char类型没有明确规定,属于implementation defined。
2. C语言中的整型常量数据类型是根据常量数值大小而定。可强制加U、 L等指定数据类型。
3. 八进制整数常量以0开头,十六进制以0x 或0X开头。有些编译器也支持二进制整数常量,以0b 或B开头,但不是C标准,只是作为一些编译器的扩展。
4. 浮点数在各个平台上的实现差异很大。
5. 负数的右移操作,高位补零还是补一是implementation-defined的。
6. 左移或右移操作移动的位数大于做操作数位数,结果是undefined。
7. 一个数与自身异或的结构为0 ,这比直接将一个数的赋成零要快。
直接对寄存器做位运算比生成一个立即数再传送到寄存器要快一些。
8. 和0异或原值不变,和1异或原值取反。
9. 交换两个变量的值,不得借助额外的存储空?
a = a ^ b;
b = b ^ a; (= b ^ (a ^ b) = a;)
a = a ^ b;
利用的是 1. 一个数与0异或值不变; 2. 一个数有自身异或为0