主要对于数据类型的深入了解

1.计算机系统的认知:


**************************************************************************************************************************************************************************************************************************

2.嵌入式的概念:

      嵌入式技术是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统技术。

计算机技术:
硬件:CPU(运算器+控制器);存储器;内存硬盘;输入,输出
软件:操作系统:文件管理;进程管理;存储管理;网络管理;CPU管理

通过实现的功能的需求进行软件硬件的裁剪,突出所需要的功能(软硬件裁剪的目的


**************************************************************************************************************************************************************************************************************************

3.vim(vi)的进阶用法:

在命令模式下:Nyy -- 复制n行(光标所在位置为准 )

Np -- 粘贴N份(光标所在的下一行)

dd--删除(光标这一行) ; dd+p--剪贴  

ctrl+v--复制块    ;   shift+v--复制行  --------- 此时选中后y为复制,d为删除,d+p为剪贴

注意:ctrl+v--复制块可以复制任意的方向键选择内容,从程序任意地方插入。

u--撤销(几下u可以撤销多少次)  ;  ctrl+r--反撤销

进入底层代码可以用  q!强制退出

:/ + 字符串   ---  在vi里找到相应的字符串


**************************************************************************************************************************************************************************************************************************

4.基本数据类型

整型(1),浮点型(1.0),字符型(a)

注意:signed/unsingned  有负号/无负号


整型--------------

整型:( int(4字节)    ;   short (2字节)   ;  long(8字节)     ;  long long )----  signed/unsingned 使其变为8种类型     

注意:值+s/L/LL/UL(unsingned long)......     ---------后缀加缩写指定类型


常量形式(值不能被改变的量):
123      //十进制         -------------    输出格式  为  %d
0x123  //十六进制      -------------    输出格式   为  %x
0123   //八进制          -------------    输出格式  为  %o                                                                                                                                                                                                                                

注意:十进制转二进制  除二取余  下高上低(从下往上写,四位隔开)                                                       十六进制 <=> 二进制:1位十六进制数 对应 4位 二进制数(加权求和,四位对应一位)                  八进制 <=> 二进制  :1位八进制数 对应 3位 二进制数(加权求和,四位对应一位)

一个字节8位  eg:0101  为  四位(以字节为最小单位,无小数字节)

变量形式(值能被改变的量):指定(描述)一个变量

注意:数字,字母,下划线      ;  数字不是开头   ;  区分大小写     ;  不能与关键字重名    ;   不要和系统二级关键词重名  (比如include 预处理的命令)  ;   不能与库函数重名

eg  :  int a = 10  ---- -- 初始化   开空间的同时给了值            ;    int a   --------先开空间 后给值                ;       a = 10------------赋值


存储:                                       注意:计算机存的都是补码

int   a=0x12345678  ------  十六进制一位对应四位二进制,则占有8x4=32位,即为4字节

 实际上计算机存放的是补码。正数的  ,原 , 反,   补 码是一样的  ;  负数的反码就是原码的反数,补码=反码+1

补码理解:7是5的补码  ,  算数丢掉模 , 也就是12  (符号位 既充当符号位 又 充当数值位 )

eg:  

-5678     ;   1000 0000 0000 0000 0001 0110 0010 1110//原码

                      1111 1111 1111 1111 1110 1001 1101 0001//反码

                      1111 1111 1111 1111 1110 1001 1101 0010//补码

                       f         f        f       f        e     9       d      2   //16进制

注意:   16进制的形式是为了便于观察,实际上计算机存放的二进制


关于整形的溢出(时钟法理解上/下溢出):

1.unsigned int  [0~2^32 - 1]     2,147,483,648=2^32   (无符号正数的  ,原 , 反,   补 码是一样的)  ------  最小值为0(所有位里都存为0 )     ;  最大值为2^32 - 1(所有位里都存1 , 32位 ,则值为2^32 - 1,减1是因为+1使其运算简单,所以后面要剪掉      eg:1111 1111 1111 1111 1111 1111 1111 1111  //(最大值+1  ------  1 0000 0000 0000 0000 0000 0000 0000 0000    --------    2^32 - 1  (42亿多 )

2.signed int [-2^31 ~ +2^31-1](有符号,考虑补码)-------最大值为2^31-1(补码所有位里为0,但是有符号,所以补码要转原码,若符号为正 ,则补码“逆运算”,得出反码(都为1),反码-1得出原码转换十进制2^31-1)              ;           最小值为-2^31(若是符号为负值,在负数中最大值的算法为,补码所有位里都为1,补码逆运算-1,得出反码(末尾为0),得出原码(末尾为1)转换十进制-1       ;  最小值的算法为,补码里都为0,逆运算-1 得出反码(都为1),符号位 既充当符号位 又 充当数值位,则原码的数值 (1|都为0),转化十进制为-2^31)。

3.unsigned short [0~2^16-1]   2^16-1= 65536-1(short为2字节 18位)

4.signed short [-2^15 ~ +2^15-1]

 


浮点型----------- ---------后缀加缩写指定类型(注意l要写为L)-------一定要统一精度!!!!!

float---4字节           double---8字节        long double---16字节()   ----------  变量形式

浮点型进制的转换 (乘二法) :小数位x2 , 取ce        eg  :  0.25 (x2)-----0.5(取0) -------0.5(x2)-------1(取1),则小数点后二进制为  01 

常量形式 
 234 
 2e3 //科学计数法形式  //1.2*10^3 
 2E3 //e后面 可以是正数 或 负数 不能是小数


存储 : 

符号类型 (0正  1负)   |     (float指数位8位)指数+127(指数的大小为-128~127)   |    尾数(小数点后的二级制)                                                                                                                                                             |     (double指数位11位)指数+1023                                       |

eg    -12.25     :       第一步:1100.01(转化为二进制)                                                                                                                                                                                                                                                          第二步: 1.10001x2^3(转化为指数形式)                                                                                                                                                                                                                                              第三步:1  |  -3+127(1000 0010)   |   1001(存储方式)                                                                                                                                                                                                                          第四步:整理为四个字节--1100 0001 0100 0100 0000 0000 0000 0000(补后缀0)

注意  定义  float f=0.9      !=      表达格式  f=0.9  (因为常量默认为double,位数会更多)   要表达  f=0.9f或者是 double f=0.9


字符型-------------   和整数型互通

a,b,c   ---------     常量形式 

变量形式

char ch   -------      unsigned char  [0~2^8-1]    2^8-1=255     ;     signed char    [-128~127]

ascii表:
0~32 控制字符 不可见 
'0'~'9'-------48~57
'A'~'Z' -------65~90 
'a'~'z' -------97~122 
            eg: '0' ----- 0                '0'-48=0   
大小写转换 
加减32(通过'A'~'Z'和'a'~'z'的比较)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值