目录:
常量分类: (1)字面常量(直接常量):数值常量(分为整型常量和浮点型常量)、字符串常量和字符常量
(2)符号常量
(3)常变量
\f,换页,将当前位置移到下一页的开头
\v,垂直制表符,将当前位置移到下一个垂直制表对齐点
\o、\oo或\ooo(o代表一个八进制),与该八进制码对应的ASCII字符,与该八进制码对应的字符
\xh[h...](h代表一个十六进制),与该十六进制码对应的ASCII字符,与该十六进制码对应的字符
注:只要在定义一个变量的时候在它之前加上一个const这个关键字,就代表所定义的变量是一个常变量,常变量必须在定义时初始化,之后其值不能被修改
(一)补码:整型以补码的形式存放
(1)一个正数的补码是此数的二进制形式
求一个正整数的二进制,除以2,直至商为0,余数倒数排序
(2)一个负数的补码,先求其绝对值的补码,然后该补码所有位取反,所得之数最后加1
例如:求-5的补码
假设-5储存的单元是一个字节,一个字节是八个二进制位,求-5的补码先求5的补码,5的补码是101,其他高位上用0来填充则是00000101,得到5的补码后需要对所有位取反,对0取反就是1,对1取反就是0,所以就是11111010,然后加1得到11111011,这就是-5的补码。
(3)0的补码,所有位全都是0
注意:在存放整型的存储单元中最左边一位是用来表示符号的(一个正整数最左边那一位是0,负整数最左边那一位是1)。
8位二进制补码所代表的整数:
二进制 十进制
0000 0000 —————————— 0
0000 0001 —————————— 1
……
0111 1111 —————————— 127 ——— 2^(8-1)-1 最大正数
1000 0000 —————————— -128 ——— -2^(8-1) 最小负数
1000 0001 —————————— -127 ——— -(2^(8-1)-1)
1000 0010 —————————— -126 ——— -(2^(8-1)-2)
……
1111 1111 —————————— -1
自然数0~127,负整数-128~-1
(二)整型数据的存储空间及范围
(1)Turbo C中 int 是2个字节。VC++中 int 是4个字节。C标准没有具体规定各种数据类型所占用储存单元的长度,这是由各编译系统自行决定的。
短整型 整型 长整型 双长整型 名称
short <= int <= long <= long long 类型
2 2或4 4 8 字节
无符号短整型 无符号整型 无符号长整型 无符号双长整型 名称
unsigned short <= unsigned int <= unsigned long <= unsigned long long 类型
2 2或4 4 8 字节
注意:只有整型(包括字符型)数据可以加 unsigned 修饰符,实数型不能加,对无符号整型数据用 %u 格式输出,C99新增数据的整型类型有 long long 和 bool(布尔型)
字节数 | 有符号的取值范围 | 类型 |
2 | - 2^15~2^15-1(-32768~32767) | short, int |
4 | - 2^31~2^31-1(约-2e9~2e9) | int, long |
8 | - 2^63~2^63-1(-约-9e18~9e18) | long long |
字节数 | 无符号的取值范围 | 类型 |
2 | 0 ~ 2 ^64-1(约0~18e18) | unsigned short, unsigned int |
4 | 0 ~ 2 ^32-1(约0~4e9) | unsigned int, unsigned long |
8 | 0 ~ 2 ^64-1(约0~18e18) | unsigned long long |
记住 2^7 == 128
2^8 == 256
2^15 == 32768
2^16 == 65536
2147483648 == 2^31 ≈ 2e9
4294967296 == 2^32 ≈ 4e9
9223372036854775808 == 2^63 ≈ 9e18
18446744073709551616 == 2^64 ≈ 18e18
注意:黑色的格式声明scanf可用,黑色和红色的格式声明printf可用。
类型 | 格式声明 | ||
十进制的 | 八进制的 | 十六进制的 | |
short | %hd, %hi | %ho | %hx, %hX, %#hx, %#hX |
int | %d, %i | %o | %x, %X, %#x, %#X |
long | %ld, %li | %lo | %lx, %lX, %#lx, %#lX |
long long | %lld, %lli | %llo | %llx, %llX, %#llx, %#llX |
unsigned short | %hu | %ho | %hx, %hX, %#hx, %#hX |
unsigned int | %u | %o | %x, %X, %#x, %#X |
unsigned long | %lu | %lo | %lx, %lX, %#lx, %#lX |
unsigned long long | %llu | %llo | %llx, %llX, %#llx, %#llX |
*整型常量的类型转换
类型 | 常量末尾所加符号(建议都大写) |
short | 无 |
unsigned short | 无 |
int | 无 |
unsigned int | U、u |
long | L, l |
unsigned long | UL, ul, Ul, uL |
long long | LL, ll, Ll, lL |
unsigned long long | ULL, ull, ULl, uLL, Ull, uLl, ulL |
注:如果不加这些说明符号,整型变量的类型是由系统自动识别。
(一)字符型是以整数形式(ASCII码)存放在内存中。ASCII共128个字符(0~127这128个整数来表示字符)(也就是说最多用7位数就可以表示)。
记住: ‘A‘ —— 65
‘a‘ —— 97 一个小写字母比其大写字母的ASCII码大32
‘0‘ —— 48
空格 —— ‘ ‘ —— 32
换行 —— ‘\n‘ —— 10
空字符 —— ‘\0‘ —— 0
(二)字符型数据的存储空间和值
*
类型 | 字节数 | 取值范围 |
signed char | 1 | -128 ~ 127 |
unsigned char | 1 | 0 ~ 255 |
注意:1.C99把字符型数据作为整型类型的一种。
2.在使用有符号字符型变量时,允许存储的值为负数,但是字符的代码是不可能是负值,所以在存储字符时只用到了 0 ~ 127 这一部分。
f1输出值:
f2输出值:
(一)规范化的指数形式,把小数部分中小数点前的数字为0,小数点后第一位数不为0,如:0.314159e1就是3.14159的规范化的指数形式。
(二)实数储存空间及范围(Turbo C中long double 占16个字节,vc++6.0中占8个字节)
字节数 | 有效数字 | 数值范围 ( 绝对值) | 数据类型 |
4 | 6 | 0以及1.2e-38~3.4e38 | float |
8 | 1 5 | 0以及2.3e-308~1.7e308 | double, long double |
1 6 | 19 | 0以及3.4e-4932~1.1e4932 | long double |
注:从数值的左边第一个不为0的数字起,一直数到这个数字结束,中间的数字叫这个值的有效数字(如0.618的有效数字有三个,分别是6,1,8)
注:(一)所有常量末尾加的数据转换类型转换符可以大小写不分
(二)在目前学习过的所有格式声明中只有xeg可以不分大小写。
scanf函数中不可以使用#、-、m-n(m,n属于自然数)的格式附加字符,可以使用域款的格式附加字符
原文:https://www.cnblogs.com/XiaMengJie/p/12343424.html