嵌入式学习笔记(day3)

(1)数据类型的大小(字节数) 会 影响 数据类型的取值范围 

short 
unsigned short
0000 0000 |0000 0000    // 0 最小值 
1111 1111 |1111 1111    // 2^16  - 1 = 65,536 - 1 = 65535 
+                  1
1 0000 0000 |0000 0000   //2^16 
 
signed short    [-32768,32767]
 
//非负数 
0|000 0000 0000 0000  //0
0|111 1111 1111 1111  //2^15 - 1 = 32768 - 1 = 32767


1|000 0000 0000 0000   
1|000 0000 0000 0000  //原码值 -0  //这个值比较特殊 -专门规定了一下,只有这一个值,符号位也是数值位     //-32768

1|111 1111 1111 1111  //
1|000 0000 0000 0001  // - 1

int 
unsigned int 
0000 0000 |0000 0000|0000 0000 |0000 0000    // 0 最小值 
1111 1111 |1111 1111|1111 1111 |1111 1111    // 2^32  - 1 = 4,294,967,295

signed int 

0|000 0000 |0000 0000|0000 0000 |0000 0000  // 0 
0|111 1111 |1111 1111|1111 1111 |1111 1111  // 2^31 - 1 = 2,147,483,647 

1|000 0000 |0000 0000|0000 0000 |0000 0000 // - 2^32 =  -2,147,483,648
1|111 1111 |1111 1111|1111 1111 |1111 1111 // - 1 

(2)整型使用时,可能出现的问题

溢出 ---整型的溢出   
向上溢出 和 向下溢出 

(3)浮点类型的数据:

1.浮点型的变量 
 float //单精度类型   4 字节 
 double //双精度类型  8 字节 

2.类型大小 查看
printf("sizeof(float) = %ld\n",sizeof(float));

3.浮点型常量 
  1.23   //小数形式 
  1.23e3 //科学计数法的形式  1.23*10^3 
  1.23E3 
  1.23E-3 
  
  注意: e 后面的 数字 ,可以是负数,但是不能是小数 

(4)浮点数存储 
 
 6.125 
 
 step1: 将十进制形式的小数,转换为二进制形式的小数 
 
 整数部分 ----  辗转相除法 (除2取余法)
 110
 
 小数部分 --- 乘2取整法 
 
 0.125  *  2 = 0.25 ---- 0
 0.25   *  2 = 0.5  ---- 0 
 0.5    *  2 = 1.0  ---- 1
 
 二进制形式的小数:
 110.001
 
 step2:把二进制形式的小数 写成 科学计数法形式 
 110.001 --> 1.10001 * 2^2  
 
 step3: 按照 IEEE 754标准存储 
 

float型:
 符号位(1bits)|指数位(阶码位)(8bits)|尾数位 (23bits)
   0          | +127偏移量          | 
               2 + 127 
                1000 0001              10001 不足的位 统统补 0

double型:

符号位(1bits)|指数位(阶码位)(11bits)|尾数位 (52bits)
   0          | +1023偏移量          | 
              
                1000 0001              10001 不足的位 统统补 0
                
注意:
   1. double因为能存储的 尾数更多,所以精度更高 
   2. 代码中出现的常量 或者 变量,一定有其对应的数据类型 
     小数 默认识别为 double类型 
   3.浮点型数据比较,尽量是统一精度 
   4.可以显式的,指定常量的类型 
    0.9f //f表示 将0.9识别为 float类型 

(5)字符型

"tom" 

计算机中能存储的数据 --- 0101 二进制 

'a' <--编码--->  0101010 //代表 'a'

ASCII  --- 用 数字 对128个符号 进行了编码 


0~32   不可见字符 主要起到控制作用 
33~127 可见字符 

1.字符型变量 
  char 
  
2.字符型常量 
  'a' //单个字符 

3.字符型数组,是怎么存储在计算机的
char c = 'a';

'a'  <---> ascii 编码值(整型数字)

所谓的 'a' 字符存到计算机,实际上存的是 'a' 字符对应 ascii码的值 (二进制形式)

4.本质上其实还是 整型数据 

char类型其实是一个 整型 (tiny int)
char类型与整型是通用的 

5.字符型的大小 
   1字节 

(6)转义字符:
'n'  //字符 n 
'\n' //整体当做一个字符来看 --- \ 起转义的作用 
     //表示 一个 换行符 --起到换行的效果

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值