1.数据类型的必要性
常量:在程序运行过程中,其值不能被改变的量称为常量。
变量:变量代表内存中具有特定属性的一个存储单元,它用来存放数据,也就是变量的值,在程序运行期间,这些值是可以改变的。
CPU(中央处理单元)+RAM随机访问存储器(易失性存储器)。
ROM:只读存储器(非易失性存储器)
字节:用以描述存储的最小单位。1Byte=8Bit。
小端字节序:数据低位放在高地址处(x86架构的计算机服务器等)
大端字节序: 数据低位放在低地址处(51单片机)
ARM可自由选择数据存放形式,一般多为小端字节序
标识符:字母,数字,下划线。(不能包含关键字/不能数字开头/区分大小写/不能为关键字)。
2.整型数据
2.1整型常量:除了常见的十进制以外,还有八进制,十六进制。
八进制:0开头
十六进制:0x开头
补码:负数按位取反再加1.(即原码转换为反码再加1)
正数的原码与补码相同
2.2整型变量:
(1)基本整型,以int表示。
(2)短整型,以short int表示,或以short表示。
(3)长整型,以long int表示,或以long表示。
sizeof(int)=4,sizeof(short)=2,sizeof(long)=8, sizeof(long long)=8
同种整型变量的signed与unsigned形式相差一个数量级
3.浮点型数据
3.1浮点型常量:十进制小数、指数。
如:123e3 注:e后必须为整数
3.2浮点型变量:一个浮点型数据一般在内存中占4个字节(32位)。与整型数据的存储方式不同,浮点型数据是按照指数形式存储的。系统把一个浮点型数据分成小数部分和指数部分。
指数:1.23e2(e右边需为正数)
float:四个字节,32位。double:八个字节,64位。
注:printf默认保留小数后6位有效数字,变双精度常量为单精度常量后加f
3.3符号位:1位,0和1表示数据的正负。
阶码:8位,转化为二进制小数后,其指数+127(以float为例)后,转化为二进制数。
尾数:23位,转化为二进制小数后,取数值(1≤a<10)的小数部分,最后补零。
数值比对时,保持数据类型一致,对于未给定数据类型的数值,浮点型默认double,整型默认int
4.字符型
4.1字符型与整型兼容,但仅占用1字节,通过ASCIl表可以表示更多内容
4.2转义字符
\n:换行,将当前位置移到下一行开头
\t:水平制表符(跳到下一个Tab位置),8位,有内容占用时,不影响制表效果
\b:退格,相当于光标前移一位,不影响输出内容,此时插入新内容,原内容被覆盖
\r:光标移至本行开头,不影响输出内容,此时插入新内容,原内容被覆盖
char字符型:-128至127之间
unsigned char:0至255之前
%d输出有符号十进制数
%u输出无符号十进制数
%p 打印地址
%f 打印小数
%c 输出ASCII