如何在Keil C51中直接使用二进制数
2012-05-05 来源:21ic
在Keil C51中数不能直接以二进制形式赋值,虽然在8051的汇编中是可以的。二进制数虽然书写长,易出错,但是由于是一位位写的,所以程序设计者能够很明确的看到每一位的状态,看得比较直观。于是很多人怀念了8051的汇编,很想在C51中使用二进制。没猜错的话搜到本篇日志的人很可能就是来找这种解决办法的,下面两种办法都是不错的选择。
方法一:
建立一个头文件,将所有的二进制数宏定义列举出来,用的时候直接使用宏定义,头文件定义:binary(右键>>“目标另存为”>>下载)。
方法二:
做一个带参数宏定义,将输入的类二进制数变换为对应的16进制数,整个定义和使用实例请见下文,可以直接使用,如果想研究原理又看不懂带参宏定义的朋友们请参考谭浩强的《C程序设计》预处理命令一章内容(第三版在P204-P211)。
#define LongToBin(n)
(
((n >> 21) & 0x80) |
((n >> 18) & 0x40) |
((n >> 15) & 0x20) |
((n >> 12) & 0x10) |
((n >> 9) & 0x08) |
((n >> 6) & 0x04) |
((n >> 3) & 0x02) |
((n ) & 0x01)
)
#define Bin(n) LongToBin(0x##n##l)
void main(void)
{
unisigned char c;
c = Bin(10101001); //相当于c = 0xA9
}
上面预处理指令中使用了反斜杠,这里解释一下:每一条预处理语句总是以"#"字符开始,并且不能超过一行,一旦遇到换行符语句就被当做结束,唯一的一种能将预处理语句扩展到多行的办法就是在换行符之前加一个反斜杠('')。
- keil中GD32 MCU IAP中APP的存储地址如何设置?
- 如何查看GD32 Keil和IAR工程的map文件
- GD32开发实战指南(基础篇) 第4章 GD32启动流程详解(Keil版)
- 如何使用Keil打开GD32 FPU及使用ARM DSP库 ?
- 【GD32 MCU 入门教程】一、GD32 MCU 开发环境搭建(1)使用Keil开发GD32
- STM32 FreeRTOS Keil环境搭建
- 用Keil编译STM32工程出现下面错误
- 基于STM32的Keil和偏移地址程序存储
- STM32通过命令行编译和下载keil和IAR工程的方法
- ch32可以用keil吗?ch32和stm32编程有区别吗?