474_Arduino中二进制的标识实现分析

博客作者发现C++在Arduino环境下处理二进制的方式不同于C语言,通过查看ArduinoIDE的源文件,了解到二进制表达采用穷举方式实现,这在处理多个字节时变得复杂。作者测试了超过8位的二进制表达,导致编译失败,但通过移位等操作可以解决多字节拼接的问题。尽管不便,但依然可以实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         全部学习汇总: https://github.com/GreyZhang/arduino_uno

         在之前的学习工作经验中,C语言对于二进制的支持还是很自然的。我并不知道C++中到底是什么情况,毕竟在Arduino的开发环境中,C++其实才是占有的霸主。

         我之前尝试使用过其他平台的二进制表达模式,但是编译的时候没有被识别。今天看了一个文件之后,恍然大悟,为什么例程中的用法是没有问题的。

         在Arduino IDE的安装目中,我找到了这一部分文件。当然,这不是原始的文件,而是我做了一个拷贝之后的文件。在第7行光标处,有一个binary.h,打开之后的样子:

         对,这里是我之前就已经熟悉了的Arduino中的二进制的表达方式。不过,令我吃惊的是这种实现的模式。原来,二进制的实现直接来了一个穷举的方式,这个确实是有点让我觉得吃惊的。如果真是这样,那么实现一个32bit的方式会是一个什么状态呢?

         我直接做一个测试:

         结果,这个编译不通过!

         注释掉超过8bit的代码之后,编译OK。

         代码中没有换行,增加之后的效果:

         看起来,这个使用确实是不方便。不过,一个字节的信息标识出来了之后,大不了使用移位等手段进行一个多字节的拼接,实现起来尽管不方便但是还是容易的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值