嵌入式学习的第二天

一、数据类型
1.什么叫数据类型?
——数据种类的划分
2.c语言中数据类型
基本数据类型——整型,字符型 ,浮点型 
构造数据类型 
指针类型 
空类型  
3.为什么需要划分数据类型? 
整型——整数类型 
浮点型——小数类型 
字符型——符号类型
4.什么是编程?
——就是把人类的问题描述给计算机,让计算机解决
人类世界——>编程语言——>计算机世界
5.数据类型
常量——“在程序运行过程中”,不能改变的量
变量——“在程序运行过程中”,能改变的量
—————————————————————————————

二、整型
1.常量形式
123——十进制的整型常量
0x123——十六进制的整型常量
0123——八进制的整型常量
2.进制(进位的制度)——逢几进1(满几进1)
十进制——>二进制
方法:除2取余法
二进制——>十进制
方法:加权求和法
二进制——>八进制
对应关系: 1位八进制数对应3位二进制数 
二进制——>十六进制
对应关系:1位十六进制进制数对应4位二进制数 
3.整型变量
语法 
     定义变量
     数据类型  变量名; 
整型的类型:
① int——signed int      4个字节
② Short                  2个字节
③ long                   8个字节
④ long long              8个字节
Unsigned/signed
4.变量名——是一个名字(标识符)
怎么起名字?
① 数字、字母、下划线组成
② 开头不能是数字 
③ 不能与关键字重名 
④ 不要和预处理命令 及 库函数名重名 
eg:    int a_1;
       int 1_a; //这个名字不合法 
5.数据类型的大小
——表示的是该数据类型 所占内存空间的字节数 
① int——signed int      4个字节
② Short                  2个字节
③ long                   8个字节
④ long long              8个字节
sizeof(运算数) 计算运算数所代表的数据类型占用的内存空间的字节数 
         运算数 可以是一个类型名
                 sizeof(int)
                可以是变两名 
                 sizeof(a) 
                可以是个常量或表达式
                sizeof(10)
                sizeof(a+10) 

6.变量给值
int a = 10; //定义的同时给值 初始化 
  int a; 
  a = 10; //赋值 
  变量之所以能变 --- 变量实际上对应是一块可以被修改的空间
大小端:
小端:高高低低(高位数据存在高地址处,低位数据存在低地址处)
大端:与小端相反
X86——小端模式
51单片机——大端模式
7.整型数据的存储
int a = 123; //00 00 00 7B 
  [] ——二进制 
  0111 1011
  int a = -123; 
  123 ——正数 
  -123 ——负数 
  整数 
     计算机最终存储的都是 他们的补码形式 
     正数—— 原码 反码 补码 都是一样的      
     负数—— 反码 + 1 
    eg:123 
     0111 1011 //原码
    0111 1011 //反码 
    0111 1011 //补码    
补码:(同余模)
 钟表 
12 - 7 = 5 
12 + (-7) = 5
模 - 负数的绝对值 = 补码 
12 - 7 = 5
12 + 5 = 17  --- 5 
CPU (ALU) --- 加法器 
int 型  4个字节 
0 |000 0000 0000 0000 0000 0000  0000 0000 
符号位| 数值位  
    0 正;1 负 
无符号 --- 表示所有的二进制位 都是数值位 
有符号 --- 表示有一位(最高位)充当了符号位,其余位是数值位
eg:  -7  
  1|000 0000 0000 0000 0000 0000  0000 0111 //原码 
  1|111 1111 1111 1111 1111 1111  1111 1000 //反码 
  1|111 1111 1111 1111 1111 1111  1111 1001 //补码
   f     f    f    f    f    f     f     9  
  负数的反码 是 原码 的符号位不变 其余位按位取反 

8.考点
① 整数的溢出  
② 整数存储和使用分开的 
三、浮点型
1.浮点型的常量形式
① 1.23
② 1.23e-4(1.23E-4)——科学计数法形式1.23*10^-4
2.浮点型的变量
关键字 
① float——单精度
② double——双精度
③ long double
定义变量:float f :
3.浮点型的大小
① float—— 4字节
② double——8字节
③ long double——16字节
4.浮点型的存储
eg:12.125
① 将十进制的小数写成二进制的小数
(整数使用除2取余法,小数使用乘2取整法)
12——1100

0.125 * 2 = 0.25 --- 0
0.25  * 2 = 0.5  --- 0
0.5   * 2 = 1    --- 1
0.001
二进制形式:1100.001
② 将二进制形式的小数写成科学计数法形式
1100.001——1.100001*2^3
③ 按照ieee 754标准存放
Float 4字节 32位
1位    | 8位 充当 指数位   | 23位 
 符号位 |                   | 尾数位 
  
  0  |   3 + 127(偏移量) | 100001
0100 0001 0100 0010 0000 0000 0000 0000   // 12.125 存到计算机中的样子 
  4    1   4    2    0    0    0    0   

5.考点
浮点的比较 
  代码中出现的 变量 或 常量 一定有其对应的数据类型
  代码中出现的 浮点型常量 默认识别为 double 类型 
eg:  0.9  *  2 = 1.8 --- 1
  0.8  *  2 = 1.6 --- 1
  0.6  *  2 = 1.2 --- 1
  0.2  *  2 = 0.4 --- 0
  0.4  *  2 = 0.8 --- 0
  0.8  *  2 = 1.6 --- 1
  .... 
  1.1101 ... * 2 ^ n 
  float 
  1位 符号位|8位 指数位  |23位 尾数位 
               +127
  double 
  1位 符号位|11位 指数位 |52位 尾数位
               +1023 
浮点数的比较:
① 保证精度一致 
② 类型一致  
  常量也可以指定类型:
  0.9f //表示被识别为 float类型 
  123 //默认识别为 int类型 
  123L //识别为long类型 
  123LU //unsigned long 
  123LL //long long 
  123LLU //unsigned long long 

四、字符型
'a' --编码--- 0101010 
      ASCII 
1.字符型常量形式
'a'  //字符常量 a这个常量 
2.字符型变量形式
char  
char ch; //一个字节 
char ch = 'a';    
ch这个变量中最终放的放的实际上是'a'对应的ascii码值 (整型)   
char  //tiny int --小整型 
char 也一种整型类型 说char和整型之间是通用的 
unsigned char ch;   //[0    ~ 255]
signed char a = 10; //[-128 ~ 127]
3.字符型大小
一个字节
4.字符型的应用
0~32 控制字符(不可见字符) 
48~57 数字字符 '0' ~ '9'   
65 ~90  英文的26个大写字母的符号 
97 ~122 英文的26个小写字母的符号 
  
char ch = '1';
printf("%d\n",ch - 48); //数值1  
printf("%d\n",ch - '0'); //数值1 
大写转小写  +32 
小写转大写  +32

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值