找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

KEIL-C51 IDE 直接输入编辑2进制数...64位整数...8x8 LED 矩阵动画和LCD1602定制符号

查看数: 1614 | 评论数: 3 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2024-9-26 12:07

正文摘要:

。。。离开上一次发帖( 单板机上的实时时钟加装后备纽扣电池,和Windows时间同步)已经有好几个星期了。。。这两天路过 CSDN 上一些菜鸟写的有关如何在 KEIL-C51 IDE 里 输入、编辑2进制数、64位整数的帖子,帖子的 ...

回复

ID:654797 发表于 2024-9-29 06:28
这样不怎么实用,还不于用1移位实现得快
ID:1130439 发表于 2024-9-29 00:25
hclin 发表于 2024-9-28 16:53
天啊~用 enum 來實現。在16bit,32bit的情況下,是會要人命的。

用 enum 来做,C语言的新手比较容易理解,尽管要遍历256 个 8 位无符号整数,源文件大了一点,但并不会导致HEX文件的虚胖,浪费MPU 非常有限的存储空间。对于那些学习C/C++ 达到 sophomore 等级的同学,也许可以推荐更高级的宏定义,例如:
#define L2B(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 b(n) L2B(0x##n##l)

之后,你就可以用 b(10010010010) 这样的格式输入 2 进制常数了。 根据 16/32/64 位的长短,自行修改上面的宏定义。。。。新版C++ 编译器已经直接支持2 进制常数,或者自己写一个 2 进制数据类型的 Class 也可以。希望这些注解能帮到 正在学习 C/C++ 的同学。
ID:43600 发表于 2024-9-28 16:53
天啊~用 enum 來實現。在16bit,32bit的情況下,是會要人命的。

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表