小阶段总结(关于嵌入式基础,数据类型,关系运算,输入输出,流程控制)!

本文介绍了嵌入式开发中Linux的基本操作,如Ubuntu系统的使用、终端命令、文件管理,涉及数据类型、进制转换、关系运算符、隐式与强制类型转换,以及输入输出和流程控制,包括if-else、switch、循环结构等。
摘要由CSDN通过智能技术生成

一,嵌入式的基础以及linux的基础

1.linux的一些常识:

ubuntu操作系统  --- linux系统   ; terminal --- 终端  --命令终端   ; ctrl + alt + t --- 打开终端

linux  -- 用户名   ;  ubuntu -- 主机名   ; ~      -- 主目录 //当前所在的位置  ; $      -- 表示是普通用户 


2.linux基础的的文件创建和相关操作

pwd -- 打印当前路径  ;  ls -- 查看当前路径目录下内容(-l  是查看文件属性信息)  ;  cd -- 切换目录(去到想去的路径下)  ;   touch(前缀+sudo临时切换为超级用户) -- 创建一个文件  ;
mkdir(+ 1/2/3 -p 可以创建多级目录) --  创建目录  ;  cp(目录操作需要加 -r) -- 复制文件  : 
mv -- 移动和命名的作用   ;  rm(目录操作需要加 - r) --  删除文件 


二,数据类型

1.进制的算法:

本质就为加权求和。
十六进制 <=> 二进制 : 1位十六进制数 对应 4位 二进制数
八进制 <=> 二进制     : 1位八进制数 对应 3位 二进制数
十进制 <=> 二进制     :  除2取余法


2.数据类型种类:

整型(理解为整数),浮点型(理解为小数),字符型(理解为一个字符或字符串)
整型:int(4字节)    ;   short (2字节)   ;  long(8字节)     ;  long long(8字节)
浮点型:float(4字节)    ;  double(8字节)  ;   long double(16字节)
字符型:char (一字节)


3.整型的溢出:

是上下溢出,因为数据类型的不同,较长的数字赋给短字节数据类型时,会出现超范围,就会出现溢出情况。


4.转义字符:

\t---8格(包括所占的字符,且光标跳到8格之后的第一位)  ;  \b---退格(若前面为\n或是一个字符,就变成取消换行,和退掉字符)    ;   \r--移到本行开头(替换开头字符)   ;      \\----“\”(打印路径常用)   ;   \ddd---八进制代表的字符(“\133”输出为“[“)
主要用到:\n 换行符     \'  打印出 ’


5.数据类型注意的点:

@.计算机存数据,全存为补码,正数的正码反码补码都一样
@.字符数据:存到计算机   a ---> 编码值 (数值) ---> 无符号的整数 
@.赋值的时候最好写成类型相同的
@.数据存储:高高低低--高位数据 存储在 高地址处 ;低位数据 存储在 低地址处
@.有符号数:有一位为符号位包含了 正数 ,负数 ;  无符号数  :不包含符号位, 包含非负数
@.关于各个数据的存储范围:signed int [-2^31 ~ +2^31-1]    ;  unsigned int  [ 2^32 - 1]                        signed short [-2^15 ~ +2^15-1] ; unsigned short [0~2^16-1]  ;  
       signed short [-2^15 ~ +2^15-1]  ;  unsigned short [0~2^16-1]   ;
@.符号类型 的存储(0正  1负)   | (float指数位8位)指数+127(指数的大小为-128~127  |    尾数(小数点后的二级制)                                                                                                                                                                           |     (double指数位11位)指数+1023                    |
@. 字符对应的数值主要用到一个ASCII表的查询和了解(在vim中,指令“man ascii”打开ASCII表)


三,关系运算符和关系表达式

算术类型:+   -   *    /     %(取余)    ++(自增)      --(自减) 赋值运算   逗号运算
关系大小记忆口诀:“单算移关与,异或逻条赋”--------- 单目运算符(eg:++ ; --  ; !  ;&)>算术运算符>移位运算符>关系运算符(eg:< ; > ; ==)>与>异>或>逻辑运算符>条件运算符>赋值运算符

1.隐式类型转换:

悄然发生的转换。
必转的  : int <----char/short 
低精度类型 与 高精度类型混合运算 ,此时 低精度 往 高精度转

强制类型转换:(类型)表达式       eg:(float)10--------10.0(转换为浮点型)


2.关系运算符和关系表达式需要注意的点:

@.   /: 除数不可以为0
@.   浮点型不能做求余运算   ;   求余运算 第二操作数 不能是 0   ;   求余运算的结果的符号取决于左操作数的符号(eg:-4%3=-1   ;    4%-3=1)
@.    printf("%d%d\n",i,++i)是错误的 ,会有不确定的运算
@.    贪心原则:从左到右逐个字符的扫描表达式,看这些字符能否,尽可能多的结合成c的运算符 不能结合,就还是字符本身
@.   ++的运算数 必须是左值,能被&到的值(常量,匿名变量和表达式是右值)


四,输入输出

类型:单个字符输入输出:getchar  ; putchar   (可以:putchar(getchar()))
           格式化的输入输出:printf ; scanf
           字符串的输入输出:gets  ;  string  输出一段字符(‘abc’)

1.格式输入输出:

1.1 printf(输出)

printf (“格式输出函数”,可变参数变量或值) --- 最常用的
printf( 格式控制,输出表列):
%d类型的:
 %cl 。按十进制整型数据的实际长度输出。  ;   %md (也可用于下面的格式)为指定的输出字段的宽度。如果数据的位数%小于 m, 则左端补以空格,  若大于 m, 则按实际位数输出   ;ld 。输出长整型数据(eg输出long)  
%o 格式符。以八进制整数形式输出。
%x 格式符 。以十六进制数形式输出整数。
%u 格式符。用来输出 unsigned 型数据,即无符号数,以十进制整数形式输出。
%c 格式符。用来输出一个字符。

%s 格式符。用来输出一个字符串。
%f  
格式符。用来输出实数(包括单、双精度),以小数形式输出。


1.2 scanf(输入)

简单理解,就是用户可以从键盘上输入指定字符或字符串到计算机里,达到给程序赋值的目的。
格式输入输出函数与printf输入输出函数大同小异,就是输入的格式。


2.输入输出的注意点:

@.  C语言不提供输入输出功能 , 是由输入输出函数库提供的;
@.  浮点型数据输入时 ,类型要匹配(int - %d ; long - %ld ; long long - %lld);
@.  多个数据输入时, 以空白符作为分割符(等同于多个空格,tab);
@.  scanf  输入表列参数注意一定要写 & (取地址) 
@   %*c : 表示 跳过一个 数据项(占位符号识别参数时是一个一个识别的)


五,流程控制

结构:顺序结构(一行一行执行代码)  --  分支结构 -- 循环结构


1.分支结构

1.1 运算关系

算数>关系运算>逻辑运算>赋值>逗号

关系运算:0 为 假  ;  1 为 真   (一般用在关系运算中)

逻辑运算: 与( && )---- 一假则假   ; 或(  ||  )---  一真则真    ;   非(  !)-----  真假相对 ;


1.2 if 语句

一般来说 : if   ; else if   ;  else  一起用的
先判断if , 为假判断else if , 都为假则跳转else直接执行   ;   为真直接执行


1.3 条件运算符

形式:表达式?printf(a):printf (b):printf(n)- a为真执行  ; a 为假执行b  ; b为假执行n


1.4 switch语句

switch(表达式必须为整型)    {    case 常量表达式: 语句;break(跳出语句);            default(不符合case的语句在这里执行):    语句;break;                  }


2.循环结构

类型:goto语句  ---  while ---  do while --- for
循环的构成是由初始条件(i=0)+趋于结束的条件(i++)+结束条件(i<100)


2.1 goto

goto 语句标号(相当于设定语句的标签)
goto可以去到你想去的标签语句,不算严格意义上的循环,循环上可用性不高


2.2 while()

while() {    语句;   }  
判断(表达式)   真的话执行,然后重复判断,为假时停下(简单理解为语句中的值不满足表达式内容时循环停下)


2.3 do while()

do {     语句  ;   }  while()
先执行语句,最后判断条件,为假时停下,为真时,循环


2.4 for

for(表达式1;表达式2;表达式3){          语句 ;           } 
表达式1为初始条件  ;  表达式2为结束条件   ;  表达式3为趋于结束的条件(i++)


2.5 break 和 continue 语句

break表示跳出本层循环,直接用,循环中(除了goto之外)
continue结束本次循环,继续下一次循环


3.流程控制分支结构的注意点:

@.   与和或   : && 截断特性(短路特性)-- 左边式子为真(假),右边不运算(考虑运算的先后确定右边式子会不会有一个自运算)
@.   if()要加{},但是括号后不要加 ;
@.   切勿else()--- 否则已经是逻辑的最后一个选择了,无需判断
@.   case后面是常量,不能跟变量 
@.   switch 只会匹配一次
@.   default 书写位置没有明确规定,如果写前面,一定要加上break


4.循环流程需要注意的点:

@.  while()后面不要加分号
@.  if语句表达式2省略代表没有结束条件,一直循环
@.  if语句表达式1只执行一次

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值