二进制、十进制和十六进制
十进制:逢十进一,一个位有十个值0~9
二进制:逢二进一,一个位只有两个值0和1
二进制是实现计算机系统的最基本的理论基础,计算机包括单片机芯片是基于成万上亿个的开关管组合而成,它们每个都是只能开和关的状态,再难找出第三个状态了,所以它们只能对应于二进制的1和0两个值,而没有2,3,4...
书写二进制数据时需要加前缀0b,每一位的值只能是0或者1
十六进制就是把4个二进制位组合成一位来表示,于是它的每一位有0b0000 ~ 0b1111共16个值,用0 ~ 9再加上A ~ F(或a ~ f)来表示,那么它自然是逢16进1了,它本质上同二进制是一样的,是二进制的一种缩写形式,也是程序编写中常用的形式。
书写十六进制数据时需要加上前缀0x
对于二进制而言,8位二进制称为一个字节,二进制的表达范围是从0b00000000~0b11111111,而程序中用十六进制表示的时候就是从0x00到0xFF
二进制转换为16进制,4位一组,遵循8/4/2/1的规律
对于进制而言,只是数据的一种表现形式,而数据的大小并不会因为进制表现形式不同而不同,比如二进制的0b1和十进制的1以及十六进制的0x01,它们本质上是数值大小相等的同一个数据。
在进行C语言编程的时候,只写十进制和十六进制,那么不带0x的就是十进制,带了0x的就是十六进制
C语言变量类型和范围
变量自然和常量是相对的。
常量就是1,2,3等固定的数字,而变量则跟小学学的x是一个概念,既可以让它是1,也可以让它是2,想让它是几程序说了算的。
C语言的数据基本类型分为字符型、整形、长整形以及浮点型
每个基本的数据类型又包含两个类型。
字符型、整形、长整形除了可以表达的数值大小范围不同之外,都是只能表达整数
unsigned 型的又只能表达正整数,要表达负整数必须用 signed 型
如果要表达小数的话,则必须用浮点型了
对于变量类型的选择坚持一个原则:能用小不用大,也就是能用1个字节的char来解决问题,就不定义为int型,是为了节省RAM空间可以让其他变量或者是中间运算过程使用,另外一方面,栈空间小程序运算速度也快一些
C语言基本运算符
在C语言编程中,加、减、乘、除和取余分别是:+、-、* 、/、%,此外,C语言编程中还有额外的两个运算符++和--,它们的用法是一样的,一个是自加1,一个是自减1- unsigned char a = 0;
- unsigned char b = 0;
- a = ++b;
复制代码 整个运算过程是先算 b = b + 1那么b就等于1了,然后再运行a = b,运行完毕a = 1; b = 1- unsigned char a = 0;
- unsigned char b = 0;
- a = b++;
复制代码 整个运算过程是先执行 a = b那么a就等于0了,然后再运行b++,那么b就等于1了,运行完毕a = 0; b = 1
在C语言中还有一个很重要的运算符:赋值运算符=把1赋值给a,把2赋值给b,把a+b的值赋值给a,最后a的值为3,b的值为2
==是C语言中比较运算符中的等于运算符
!=是C语言中比较运算符中的不等于运算符
for循环语句
for语句是编程的一个常用的语句,不仅仅可以用来做延迟,更重要的是用来做一些循环运算
for语句的一般形式如下:- for (表达式1;表达式2;表达式3)
- {
- (需要执行的语句);
- }
复制代码 其执行过程是:表达式1先执行且只执行此一次,然后执行表达式2,通常表达式2是一个判断表达式,如果表达式2成立,则执行循环体即(需要执行的语句),再执行表达式3;然后再去判断表达式2是否成立,循环往复,直到表达式2不成立了,跳出循环继续执行循环后面的语句
for循环的两种特殊用法:- for(i = 0; i < 3000; i++)
- ;
复制代码 循环体是;也就是一个空语句,即该循环不进行任何操作,仅仅只是执行了0到3000的计数循环,也就是等待了一段时间,故可以用来进行不规范延迟该循环无循环判断条件,也就是执行循环无法退出,就是一个死循环,可用用于在编写代码让程序停留在某一个地方,防止程序跑飞掉
while循环语句
在单片机C语言编程的时候,都会加上一句while(1);,这条语句就可以起到死循环的作用,和for( ; ; );让程序停留在某一处,对于 while 语句来说,其一般形式如下:在C语言里,通常表达式符合条件为真,不符合条件称之为假。
while (表达式)这个括号内的表达式如果为真则会进入循环中,执行循环体语句,否则就会退出循环。
在C语言中,非0为真,0为假
函数的简单介绍
函数的定义的一般形式如下:函数值类型,就是函数返回值的类型
当函数无返回值时,那么这个时候它的类型就是空类型void ,这个void 按照道理来说是可以省略的,但是一旦省略了,keil就会有警告,所以一般是不省略
函数名,可以由任意的字母、数字和下划线组成,但是数字不能作为开头。函数名不能与其他函数或者变量重名,也不能是关键字。
形式参数列表,也叫做形参列表,这个是函数调用的时候,相互传递数据用的。有的函数不需要传递参数给它,可以用void来替代,void同样可以省略,但是括号是不能省略的。
函数体,包含了声明语句部分和执行语句部分。声明语句部分用于声明函数内部所使用的变量,执行语句部分主要是一些函数需要执行的语句。特别注意,所有的声明语句部分必须放在执行语句之前,否则编译的时候会报错
一个工程文件必须有且仅有一个main函数,程序执行的时候,总是从main函数开始的
Keil 软件延时
C语言常用的延时方法有4种
C语言编程常用的4种延迟方法,其中两种非精确延时,两种精确延时。
精确延时有两个方法,一个方法是用定时器来延时,另一个方法是用库函数_nop_();一个NOP的时间是一个机器周期的时间
非精确延时,在实际开发里面用的非常少
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |