嵌入式之路 Day02

今天的学习内容是C语言,关于C语言,之前也断断续续学过。现在开始正式重新学习一遍。

一、数据类型

int:整型 ----整形在计算机内存中占据4个字节位,整形的数据范围为  2^31—2^31-1 

在有符号整形数据中规定把最高位作为符号位,1表示为负数,0表示为正数。

unsigned int(无符号整型):0—2^31-1

char:  字符型 -- 字符型在计算机内存中占据1个字节位。字符型数据在内存中以整形数据的形式存储。从整形数据转换到字符型数据要通过ASCII码表。

float:浮点型(小数)

long:长整型

double:双精度型

long double:长双精度型

在计算机中所有的数据都是以补码的形式存在

反码:除符号位之外,所有的数据位取反。

补码:反码+1

正数的反码和补码都是他本身。

求负数的原则是先反后补。  符号位不参与取反,参与计算。?

还有一点比较重要的知识是:有符号类型的数据范围在负数上多一个。下面是一个代码案例

我们可以看到当字符型的数据范围超过她所包含的范围时,显示出来的结果并不是1,而是-128。这是为什么呢?是因为在无符号的字符型数据下数据范围是0-255,比有符号的-127-127多了一个数字,而这个数字就是±0,因为±0是同一个数字所以为了让数据范围一样,后面就人为规定-128也在范围之内了。这就是为什么显示128.

把长数据类型转换成短数据类型:窄转换

把短数据类型转变为长数据类型:宽转换

float:小数不能进行等于号判断,下面是一个代码案例

因为有些小数在二进制的转换下可能是一个位数超过规定位数的数。所有有些数并不能完全相等。

那么小数的二进制转换。可以参考一下这个链接float 浮点型底层存储原理_float 0.01+0.02-CSDN博客

这个转换规定叫IEEE(电气与电子工程协会)754规定

最高位:符号位

8位:指数位

23位:数值位

变量和常量

变量的定义:有内存的量

常量:数值

变量的初始化:将变量在定义时赋值

二、关键字

sizeof :计算目标占据计算机内存的大小

三、C语言的语法结构

1.顺序结构

2.分支结构

3.循环结构

顺序结构:

c运算符:

单目运算符:

-- 自减1

++ 自增1

++a和a++的区别问题:

a++ 与 ++a 的区别_++a和a++的区别-CSDN博客

这个题目很经典,如果可以看到这篇文章的人,可以把自增符号调换位置看一看输出。

 !:非

~ :取反 :符号位也取反

双目运算符:

=,-,*,+

/:整除

== 判断等号两边是否相等

算数运算符:

逻辑运算符:(不会影响输出)

&&:与

||:或

非零jizhen

编译器优化:当 || 的左边为真,右边不进行逻辑判断。

                     当&&的左边为假,右边不进行逻辑判断。

位操作符:

&:与 :将某些位置清零

|:或 : 将某些位置置一

^:异或 :相异为1,相同为0 :位的反转

>> :右移

经典面试题。

三目运算符:

a>b?a :b

.分支结构

if else

switch case

分支结束不能缺少break(代码逻辑)

switch 只能接收整形数据。

3.循环结构

for()循环的初始条件;循环的终止条件;循环的步长

{

}

while

do{}while

这一章先把框架搭在这里后面我们再补充。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值