数据类型 回顾!
第一节 数据类型
| 数据结构(4种) | 基本类型 | 整型 实型(浮点型) 字符型 | 
| 构造类型 | 数组类型 结构体类型 共用体类型 枚举类型 | |
| 指针类型 |  | |
| 空类型 |  | 
第二节 常量与变量。
常量:值不能改变的量是常量。
分为直接常量和符号常量。
直接常量:包括整型常量、实型常量、字符型常量和字符串常量。
符号常量:指的是宏定义中的#define 标识符 变量值。
一个#define命令一次只能定义一个常量,若要定义多个,需使用多次#define命令。如:
#define n 10 
#define m 5
1.整型
1.1整形数据
| 关键字 | 类型 | 占用字节数 | 取值范围 | 
| int | 整型 | 4字节(32位) | -2^31 ~ 2^31-1 (-2147483648~2147483647) | 
| short | 短整型 | 2字节(16位) | -2^15 ~ 2^15-1(-32768~32767) | 
| long | 长整型 | 4字节(32位) | -2^31 ~ 2^31-1 (-2147483648~2147483647) | 
| unsigned int | 无符号整型 | 4字节(32位) | 0 ~ 2^32-1(0~4294967295) | 
| unsigned short | 无符号短整型 | 2字节(16位) | 0 ~ 2^16-1(0~65535) | 
| unsigned long | 无符号长整型 | 4字节(32位) | 0 ~ 2^32-1(0~4294967295) | 
说明:
1.无符号数不能表示负数。(从unsigned的取值范围可看出),
2.无符号整数以二进制原码形式存储(无符号数在内存的最高位不是符号位)。
3.有符号整数(正数、0和负数)在内存中以二进制补码形式存储。
经我用DEV C++测试,小米64位笔记本 long在也是4字节。
	printf("%d",sizeof(long)); //4
unsigned 不能修饰 float与double
原因:https://blog.csdn.net/wordwarwordwar/article/details/84194049
1.1整形常量
十进制整形常量:0-9
八进制整形常量:以0开头:-017表八进制数-17
十六进制整形常量:以0x开头
长整形常量:以L或l结尾
无符号整型常量:以U或u结尾
| 整形常量种类 | 有效数字 | 举例 | 
| 十进制整形常量 | 0~9 | 17 18 | 
| 八进制整形常量(以0开头) | 0~7 | 017 020 | 
| 十六进制整形常量(以0X或0x开头) | 0~9、A~F | 0XAF 0x2D | 
| 长整形常量:(以L或l结尾) | 0~9 | 23L 23l | 
| 无符号整型常量(以U或u结尾) | 0~9 | 17U 18u | 
判断正误:
0xuu (×,最多到f,此数不属于任何进制)
018 (×,最多到7,此数不属于任何进制)
1.2整型变量
1.3进制转换
R表示任意进制。
R -> 十 : 按R展开求和
十 -> R : 除以R取余倒排。
记住R转十是乘,十转R是除.
结果该加0x加上,该加0也加上
例如:   
    
 
有符号的二进制转十进制:
有符号数的第一位数代表正负,1负0正。后面的数按R展开求和。
例如:   
 
| 十进制 | 二进制 | 对应10来理解进制转换 |  |  | 
| 2(2^1) | 10 (1个0) |  | 10^1 | 10 | 
| 4(2^2) | 100 (2个0) |  | 10^2 | 100 | 
| 8(2^3) | 1000 (3个0) |  | 10^3 | 1000 | 
| 16(2^4) | 10000 (4个0) |  | …… | …… | 
| 32(2^5) | 100000 (5个0) |  |  |  | 
| 64(2^6) | 1000000 (6个0) |  |  |  | 
| 128 (2^7) | 10000000 (7个0) |  |  |  | 
1.4原码、反码、补码、按位取反
无符号整数以二进制原码形式存储(无符号数在内存的最高位不是符号位)。
有符号整数(正数、0和负数)在内存中以二进制补码形式存储。
|  | 正数 | 负数 | 
| 原码 | 将十进制转为二进制 | |
| 反码 | 同原码 | 最高位(符号位)不变,数值位取反(0变1,1变0) | 
| 补码 | 同原码 | 反码+1 | 
| 按位取反(~) | 将补码的符号位和数值位全部取反 | |
如,计算:~5 、~-6:   
 
	printf("%d,%d",~5,~-6); //-6,5
2.实型
(1)float 与 double 输出时都用%f,float输入时用%f , double输入时必须用%lf(小写L,不是数字1)
(2)%f 输出时默认保留6位。
- 点赞
- 收藏
- 关注作者
 
             
           
评论(0)