C语言基本数据类型如下:
1.整型:
整型数据:在c语言中整型常量有三种表示形式分别是八进制、十进制和十六进制;
十进制整数,如132,23,-321;
八进制整数,以0开头的是八进制数。
十六进制,以0x开头的数是是十六进制数。
2.变量和常量:
(常量 )在程序运行过程中,其值不能被改变的量称为常量;
(变量) 在程序运行过程中,其值能被改变的量称为变量;
3.进制转换:
n进制: 满n进1 --- 进位制度 ;
十进制 => n进制 方法:除n取余法 ;
n进制 => 十进制 方法:加权求和 ;
二进制 <=>八进制 方法: 一位八进制数 对应 三位二进制数 ;
二进制 <=>十六进制 方法: 一位十六进制数 对应 四位二进制数 ;
4.整型变量的定义:
语法:
数据类型 变量名;
整型:
int //整型 4个字节
long //长整型 8个字节
short //短整型 2个字节
long long 8个字节
变量名又称标识符:
标识 符的定义规则:
1.数字,字母,下划线组成 ,不能是数字开头
2字母区分大小写
3.不能与关键字重名
4.不建议和 二级关键字重名(include define)
赋值和初始化的区别:
int a = 10;//初始化
int a;
a = 10; //赋值
5.整型数据存储:
字节顺序 ---字节序
int a = 0x12345678;
0x12 高位的数据
0x78 低位的数据
大端存储 :反过来的
小端存储 :高高低低 (高位数据放在高地址处)
注意:
电脑一般都是小端存储
51单片机 大端存储
arm 芯片 可以选择,默认是小端
存储方式:
整数在计算机中都是以补码的形式存储
正数
原码 反码 补码 是相同的
负数
原码
反码 //原码 符号位不变,其余位按位取反
补码 //反码+ 1
某个负数的补码再求一次补码可以得到原码
数据类型所能表示的数据范围:
int / unsigned int : 0 ~ 2^32-1
signed int : - 2^31 ~ 2^31-1
short / unsigned short :0 ~ 2^16-1 (65535)
signed short : -2^15 ~ 2^15-1 [-32768~ 32767]
注意:
整型数据 可能会溢出
最大值+1 变成 最小值 向上溢出
最小值-1 变成 最大值 向下溢出
6.浮点型
作用:用于处理小数;
float 4字节
double 8字节
long double 16字节
浮点数的存储:
step1: 将十进制形式的小数,转换为二进制形式的小数 ;
整数部分 ---除2取余法
小数部分 ---乘2取整法
step2: 将二进制形式的小数,写成科学计数法形式
step3: 按照IEEE754给定标准存储
float 4个字节 单精度
32个位
符号位| 指数位 | 尾数位
1位 8位 23位
double 8个字节 双精度
64位
符号位 | 指数位 | 尾数位
1位 11位 52位
1023
指数位涉及一个偏移量:指数+127;因为指数可负可正,
偏移量:2^(n-1)-1 其中n表示指数位数
例如:12.25
(1) 1100 . 01
0.25 * 2 = 0.5 ... 0
0.5 * 2 = 1.0 ... 1
(2)1100 . 01 => 1.10001 * 2 ^ 3
(3)0 3+127 10001
0100 0001 0100 0100 0000 0000 0000 0000 //计算机中最终存储形式
4 1 4 4 0 0 0 0
注意:
1. 不论是变量,还是常量,都有其对应的数据类型
2.变量在生存期(如果是局部变量,生存期为定义开始到作用域结束,全局变量,生存期为定义开
始到程序结束)内只能初始化一次,可以赋值无数次;
3. 浮点类型 比较问题
比较两个浮点类型的数据,必须保正精度是一致
4. 常量后面,可以添加 f 这种的表示将常量 识别为float类型
小数常量默认识别为 double类型
小数常量后面加l 识别为long double
例如:
0.9 //默认识别为double
0.9f //识别为float
0.9l //识别为long double
7.字符类型:
字符常量:
'a' //字符常量
字符变量:
char //表示字符类型 ,占1个字节
ASCII码
0~32 不可见字符 (控制字符)
48~57 '0'~'9
65~90 'A'~'Z'
97~122 'a'~'z'
转义字符: