嵌入式学习开发:第二章C语言编程基础知识

嵌入式开发入门:第二章C语言编程基础知识

C语言基础数据类型



前言


为什么要学习C语言? 编程语言算是程序员与计算机直接的交流方式,C语言作为入门编程行业的语言。同样C语言也是嵌入式开发所需要的一门语言。


一、计算机存储数据

首先,计算机如何存储数据是最基础最必要的,以后的某些细节计算都需要涉及到计算机的存储原理。

二进制:逢二进一,数字只有0和1。(例:0010表示十进制中的2)
在这里插入图片描述

1-1 原码

十进制直接转换为二进制,最高位为符号位。
原码范围:– ((2^n)–1) ≤ x ≤ (2^n)–1(这里都是十进制)
在这里插入图片描述
在这里插入图片描述

1-2 反码

原码变反码:符号位不变,其余位变为反(0变1,1变0)注意:正数的反码,补码都为原码
用上面例子
反码的取值范围:– ((2^n)–1) ≤ x ≤ (2^n)–1(十进制范围)
正数:
在这里插入图片描述
负数:
在这里插入图片描述

重点1-3 补码

计算机中保存的数据都是以补码的,若以后程序有存储错误,可以使用补码反推(例如数据溢出、浮点数比较等)
原码转换成补码:原码先转换成反码,在对反码末尾+1。
补码转换成原码:补码取反末尾+1。
正数:
在这里插入图片描述

负数:
在这里插入图片描述

补码的范围:– 2^n ≤ x ≤ (2^n)–1(这里负数会比正数多一位)

为什么补码的负数要比正数多一个?

原因:引入符号之后,可以想到有+0也有-0,规定补码中每个数都对应唯一的补码值。所以+0和-0只能有一个来表示0。
为了能使-0也能有用,就将-0表示为-2^n。
一般求-0的补码会出现溢出的现象,所以看到符号位为1其余位为0的补码转原码时,不需要使用取反+1来转原码直接是-2^n(n表示整体码长)。

二、基本数据类型

2-1 整型数据

C语言中整型数据用 int 表示,简单理解就是只能存整数。
在C语言中定义一个变量规则是 <存储类型> 数据类型 变量名称(<>可省略)

例:
int a;	//定义一个整型变量a。(C语言中一句代码必须以;结尾。)
const int b; //定义一个整型常量b(const为存储类型,这里只为了演示存储类型,后续会讲。)

整型数据一般在计算机中:16位计算机占2字节,32位计算机中占4字节,64为计算机中占4字节
这里需要扩展一下计算机组成原理:
数据都是以二进制的形式存储在计算机中(简单理解为计算机只能识别有电或没电,也就是1、0),这些数据连续的存储在计算机中。规定8个这样的数据称为1字节。
在这里插入图片描述
为什么计算机存储的二进制,而我们用的是C语言编程
其实也可以用二进制,但是不好理解记忆,高级语言编程(包含但不限于C语言)写出的代码计算机会自动翻译为二进制语言(翻译工序了解即可)

2-2 浮点类型(实型)

浮点数类型分为:float与double两种。区别在于:double精度比float更精确。
所占字节(16位、32位、64位):float占4字节,double占8字节。
float的范围为-2^128 ~ +2^128,也可以表示-3.40E+38 ~ +3.40E+38(科学计数法)。
double的范围为-2^1024 ~ +2^1024,也可以表示-1.79E+308 ~ +1.79E+308(科学计数法)。
定义 <存储类型> 数据类型 变量名称(<>可省略):

float a = 0.0;	//定义一个float类型变量
double b = 0.0;	//定义一个double类型变量
const float c = 0.0; //定义一个float类型常量
const double d = 0.0; //定义一个double类型常量

2-3 字符类型

字符型变量所占字节(16位、32位、64位):占1个字节
字符类型可以理解为其实存的也是整型数据,只不过存入和写出需要翻译,翻译按规定的ASCII表进行翻译。
网图
网图,侵权联系删除
例如:
定义一个char型变量,值为字符a,但实际存储的是二进制代码。原理是将a字符对照ASCII码表找出数值97,于是存的实际上是97的补码。
单引号''表示字符,中间只能放一个字符,双引号""表示字符串,可以放多个字符

char = 'a' 
char = 97	//与上一行代码表示相同

字符串取值:-128~127


总结

本篇只针对基础C语言的学习,因为C语言中的细节相当的多简单的几篇文章也是讲不完C语言,细节后续会更新。
推荐其他C语言学习网站:C语言菜鸟教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jsvdv

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值