c语言程序小灯从右向左闪烁,【自学51单片机】4---不同进制之间转换、C语言变量种类和运算符、keil的Debug用法及应用 和 流水灯的实现...

目录

1、二进制、十进制、十六进制转换

1.1 进制介绍

1.2 进制转换

2、C语言基础

2.1 C语言变量类型及在C51的范围

2.2 C语言运算符

3、keil软件的Debug教程

3.1 延时引入

3.2程序Debug的应用

3.3 断点设置

4、 流水灯的实现

5、收获

1、二进制、十进制、十六进制转换

1.1 进制介绍

十进制:逢十进位,一个为有十个值:0~~9。

二进制:是逢二进位,它的一个位只有两个值:0 和 1,是实现计算机系统的最基本的理论基础,计算机(包括单片机)芯片是基于成万上亿个的开关管组合而成的,他们每一个都只能有开和关两种状态,对应于二进制的 1 和 0 两个值,书写二进制数据时需加前缀 0b,每一位的值只能是 0 或 1。八位二进制称为一个字节。

十六进制:就是把 4 个二进制位组合为一位来表示,用 0~9 再加上 A~F(或 a~f)表示,逢十六进位,是二进制的一种缩写形式,也是我们程序编写中常用的形式。书写十六进制数据时需加前缀 0x,两位十六进制称为一个字节。

下表为三种进制间对应关系:

8da9d651b02e437fa64aa2ecf0672174.jpg

进制说明:对于进制来说,只是数据的表现形式,而数据的大小不会因为进制表现形式不同而不同,比如二进制的 0b1、十进制的 1、十六进制的 0x01,他们本质上是数值大小相等的同一个数据。我们在进行 C 语言编程的时候,我们只用到十进制和十六进制。

1.2 进制转换

二进制转十六进制

16进制就有16个数,0–15,用二进制表示15的方法就是1111,从而可以推断出,16进制用2进制可以表现成0000~1111,顾名思义,也就是每四个为一位。举例:

00111101可以这样分:

0011|1101(最高位不够可用零代替),对照着二进制的表格, 8 4 2 1 (一般例举这么多就够了,如果有小数的话就继续往右边列举,如0.5 0.25 0.125 0.0625……)

8 4 2 1

0 0 1 1| 1 1 0 1

左半边=2+1=3 右半边=8+4+1=13=D

结果,00111101就可以换算成16进制的3D。

二进制转十进制

从最低位(最右)算起,位上的数字乘以本位的权重,权重就是2的第几位的位数减一次方。比如第2位就是2的(2-1次)方,就是2;第8位就是2的(8-1)次方是128。把所有的值加起来。

2(1-1)代表2的0次方,就是1;其他类推

比如二进制1101,换算成十进制就是:12(1-1)+02(2-1)+12(3-1)+12(4-1)=1+0+4+8=13。

十六进制到二进制

由于在二进制的表示方法中,每四位所表示的数的最大值对应16进制的15,即16进制每一位上最大值,所以,我们可以得出简便的转换方法,将16进制上每一位分别对应二进制上四位进行转换,即得所求:

例:2AF5换算成2进制:

第0位: (5)16 = (0101) 2

第1位: (F)16 = (1111) 2

第2位: (A) 16 = (1010) 2

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值