该文章内容整理自《C程序设计(第四版)》、《高质量C编程指南》、以及网上各大博客
数据表示
(1). 常量
- 整型常量:100、123等整数常量
- 实型常量:123.456、3.14等十进制小数形式;12.3e45、-6.7E-89等指数形式(e或E前必须有数字,之后必须为整数)
- 字符常量:‘1’、‘a’、‘A’、’#‘等单个字符;’"’、’\’、’\n’、’\t’等不能显示的转义字符。另外,’\101’表示八进制ASCII码数字101,即65,也即’A’;’\x41’则表示十六进制ASCII码也即’A’。这种方法可以表示ASCII码中的所有字符。另外,ASCII码使用7位二进制表示,使用8位表示时称扩展ASCII码,而Unicode码则是综合不同语言字符的字符集,ASCII码是Unicode码的子集。此外,使用\u或\U开头对字符进行编码能表示比Unicode码更多的字符。此时,\u后面为8个十六进制位,\U后面则为16个十六进制位。而在C++11中还支持UTF-8标准,此时用前缀u8表示
- 字符串常量:“ABC”、“123"等。注意"AB”"CD"与"ABCD"等价,也即在赋值或在printf中输出时将双引号内的字符串常量拆开成多个双引号的字符串常量是可以的
- 符号常量:用#define指定一个符号代表一个常量,在预处理后将符号位置换成常量。如#define PI 3.1415926(注意没有分号)
无穷大和无穷小的表示
- 利用计算机的编码特点:
INT_MAX = unsigned(-1) >> 1; //编译器默认-1为int型,所以在转换为unsigned型后并右移一位中,最高位也要随之移动