当前位置:首页 > 单片机 > 单片机
[导读]在Keil C51中数不能直接以二进制形式赋值,虽然在8051的汇编中是可以的。二进制数虽然书写长,易出错,但是由于是一位位写的,所以程序设计者能够很明确的看到每一位的状态,看得比较直观。于是很多人怀念了8051的汇

在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

  }

  上面预处理指令中使用了反斜杠,这里解释一下:每一条预处理语句总是以"#"字符开始,并且不能超过一行,一旦遇到换行符语句就被当做结束,唯一的一种能将预处理语句扩展到多行的办法就是在换行符之前加一个反斜杠('')。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在数字通信领域,二进制通信协议扮演着至关重要的角色。它们不仅决定了数据如何在不同系统或设备间高效、准确地传输,还直接影响到通信的实时性、可靠性和资源利用率。本文将深入探讨二进制通信协议的序列化与解析过程,并通过实例代码展...

关键字: 二进制 通信协议 序列化

上海2024年11月26日 /美通社/ -- 2024年11月22日,由上海璞咣教育科技有限公司主办的"宇宙新生时空艺术展"在长三角文博会上璀璨开幕,吸引了无数目光。本次展览以AI人工智能发展背景下的...

关键字: 人工智能 BSP 二进制 影像

在数字计算机系统中,数据的表示和处理是至关重要的一环。二进制作为计算机内部的基本编码方式,其表示形式直接决定了计算机处理数据的效率和准确性。在二进制表示中,原码和补码是两种重要的编码方式,尤其在处理有符号整数时显得尤为重...

关键字: 数字计算机 二进制 编码

语音识别技术,也被称为自动语音识别(Automatic Speech Recognition,ASR),其目标是将人类的语音中的词汇内容转换为计算机可读的输入,例如按键、二进制编码或者字符序列。

关键字: 语音识别 按键 二进制

触发器是数字逻辑电路中的基本元件,用于存储二进制状态。RS触发器是最早的触发器类型之一,由两个与门和一个或门构成。基本RS触发器具有置位、复位和保持功能,其特性方程是描述触发器输入与输出之间逻辑关系的数学表达式。

关键字: 触发器 数字逻辑电路 二进制

半加器虽然可以完成两个二进制位相加,但是它无法处理进位问题,因此不能用于加上多位数。为了解决这个问题,我们引入全加器。

关键字: 半加器 全加器 二进制

以科技创新力量,重新定义产业办公及产业洞察视角 成都2023年8月16日 /美通社/ -- 由仲量联行(纽交所代码:JLL)主办的睿见论坛之"REDEFINE 焕新成都产链 · 重构城市价值&q...

关键字: 数据分析 楼宇 BSP DEFINE

将“二进制”单独拿出来作为一节来讲,是因为它是一个极为基础的概念。但是很多人对二进制并没有形象的认识,甚至有一些已经入门、稍有开发经验的人对它的理解仍然比较模糊。所以振南认为有必要将它以一种更为形象、通俗而又深刻的方式着...

关键字: 二进制 单片机 CPU

单片机内部有很多的特殊功能寄存器,每个寄存器在单片机内部都分配有唯一的地址,一般我们会根据寄存器功能的不同给寄存器赋予各自的名称,当我们需要在程序中操作这些特殊功能寄存器时,必须要在程序的最前面将这些名称加以声明,声明的...

关键字: C51 数据类型 扩充定义

数据元(Data Element),也称为数据元素,是用一组属性描述其定义、标识、表示和允许值的数据单元,在一定语境下,通常用于构建一个语义正确、独立且无歧义的特定概念语义的信息单元。数据元可以理解为数据的基本单元,将若...

关键字: C51 数据类型
关闭