0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

位运算让嵌入式系统更快更稳定

5RJg_mcuworld 来源:cc 2019-02-15 08:56 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

位运算加速技巧

本方法可以让C语言指令进一步接近汇编指令的执行效率,提高单片机、嵌入式系统的速度和稳定性,但编程时应采取函数化的编程法——例如使用swap()函数时,必要时加注释。注:本例涉及一些计算机原理的思想,较为抽象,读者可利用1和2(01和10)等简单的数字进行验证,并上机实验,以加深印象。0.位运算心法:(掌握粗体字)&(与逻辑):有0出0,全1出1;|(或逻辑):有1出1,全0出0;

~(非逻辑):空即是色,色即是空;

^(异或):相异出1,相同出0;1. 如果乘上一个2的倍数数值,可以改用左移运算(Left Shift) 加速 300%x = x * 2;x = x * 64;

//改为:

x = x << 1; // 2 == 21x = x << 6; // 64 == 262. 如果除上一个 2 的倍数数值,可以改用右移运算加速 350%x = x / 2;x = x / 64;

//改为:x = x >> 1; // 2 == 21x = x >> 6; // 64 == 263. 数值转整数加速 10%x = int(1.232)

//改为:x = 1.232 >> 0;4. 交换两个数值(swap),使用 XOR 可以加速20%var t:int = a;a = b;b = t;

//equals:

a = a^b;b = a^b;a = a^b;5. 正负号转换,可以加入 300%i = -i;

//改为

i = ~i + 1; // NOT 写法

//或

i = (i ^ -1) + 1; // XOR 写法6. 取余数,如果除数为 2 的倍数,可利用 AND 运算加速 600%x = 131 % 4;

//equals:

x = 131 & (4 - 1);7. 利用 AND 运算检查整数是否为 2 的倍数,可以加速 600%isEven = (i % 2) == 0;//equals:isEven = (i & 1) == 0;8. 加速 Math.abs 600% 的写法1,写法2 又比写法1加速 20%//写法1i = x < 0 ? -x : x;//写法2i = (x ^ (x >> 31)) - (x >> 31);//写法3i=x^(~(x>>31)+1)+(x>>31);9. 比较两数值相乘之后是否拥有相同的符号,加速 35%eqSign = a * b > 0;//equals:eqSign = a ^ b > 0;

其它位运算技巧

1. RGB 色彩分离var 24bitColor:uint = 0xff00cc;var r:uint = 24bitColor >> 16;var g:uint = 24bitColor >> 8 & 0xFF;var b:uint = 24bitColor & 0xFF;2. RGB 色彩合并var r:uint = 0xff;var g:uint = 0x00;var b:uint = 0xcc;var 24bitColor:uint = r << 16 | g << 8 | b;

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5209

    文章

    20658

    浏览量

    337088
  • 位运算
    +关注

    关注

    0

    文章

    17

    浏览量

    8677

原文标题:巧用位运算,让嵌入式系统更快更稳定!

文章出处:【微信号:mcuworld,微信公众号:嵌入式资讯精选】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式软件测试找bug的常见方法和秘诀

    “我怎么才能使程序跑得更快”、“什么编译器最好”等问题。 面对这个不同寻常却异乎成熟的问题,可能很多人都不知道怎么办,下面就来讲讲软件测试找bug常见方法和秘诀。 1懂得使用工具 通常嵌入式系统
    发表于 01-12 07:07

    arm嵌入式主板优缺点

    ,ARM嵌入式主板作为单芯片系统,几乎只需要极少的外围电路就可以功能顺利进行。第二,稳定系统,除了要有
    发表于 01-08 07:08

    系统嵌入式的学习路线

    比较简单,硬件工程师工作的含金量主要体现在产品的可靠性和稳定性设计、以及电磁兼容设计,这才是硬件设计工程师的含金量所在。 一个资深的嵌入式硬件工程师年薪都在10万~ 30万之间。 要成为一个资深
    发表于 12-16 07:49

    什么是嵌入式操作系统

    要理解嵌入式操作系统(Embedded Operating System,简称 RTOS/EOS),我们可以从本质定义→核心区别→实际作用→典型特征→嵌入式开发场景适配,五个维度来拆解, 一
    发表于 12-09 10:33

    嵌入式系统的定义和应用领域

    在一起,共同构成了一个高效、稳定的工作系统。 其实,嵌入式系统的概念与个人PC有着相似的底层逻辑。单片机,作为单个芯片上的计算机系统,其定
    发表于 11-17 06:49

    嵌入式实时操作系统的特点

    通常具有以下特点: 快速响应:实时嵌入式操作系统能够迅速响应外部事件或任务请求,以满足实时任务的时间要求。 稳定性和可靠性:实时嵌入式操作系统
    发表于 11-13 06:30

    嵌入式工控机:工业自动化的核心运算单元

    在工业自动化、智能制造、智能交通等领域,嵌入式工控机作为“工业大脑”,承担着数据采集、逻辑运算、设备控制等关键任务。它并非普通商用电脑的工业版,而是基于嵌入式技术设计,能在复杂工业环境中稳定
    的头像 发表于 11-04 15:50 737次阅读
    <b class='flag-5'>嵌入式</b>工控机:工业自动化的核心<b class='flag-5'>运算</b>单元

    嵌入式需要掌握哪些核心技能?

    : 1)C语言与底层编程 核心地位:C语言是嵌入式开发的基石,需精通指针操作、内存管理、运算,直接操控硬件资源。 延伸技能:C++用于复杂项目架构设计,汇编语言优化底层性能(如启动代码、中断处理
    发表于 10-21 16:25

    油介质损耗及电阻率测试仪的嵌入式系统架构与抗干扰设计

    油介质损耗及电阻率测试仪的精准检测能力,不仅依赖于核心的电气测量模块与温控系统,更离不开稳定可靠的嵌入式系统作为“中枢神经”。嵌入式
    的头像 发表于 09-02 13:57 717次阅读
    油介质损耗及电阻率测试仪的<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>架构与抗干扰设计

    广州邮科嵌入式通信电源系统:提升通信设备稳定性与效率的关键

    在今天的信息化社会,嵌入式通信电源系统已经成为许多通信设备的核心组成部分。特别是在广州邮科,嵌入式通信电源系统不仅确保了设备的稳定运行,还极
    的头像 发表于 08-30 11:01 748次阅读
    广州邮科<b class='flag-5'>嵌入式</b>通信电源<b class='flag-5'>系统</b>:提升通信设备<b class='flag-5'>稳定</b>性与效率的关键

    入行嵌入式应该怎么准备?

    想入行嵌入式该怎么准备。很能理解大家对于嵌入式的关注,嵌入式系统是当今科技领域中的重要组成部分,它存在于我们生活的方方面面,各行各业。智能化时代的到来也
    发表于 08-06 10:34

    芯科科技MCU助力低功耗高效嵌入式系统设计

    当考虑提升嵌入式系统速度或能效时,脑海中浮现的可能是更快的CPU或更智能的睡眠模式。但如果我告诉您,Silicon Labs(芯科科技)微控制器(MCU)内部藏着一无名英雄,能在完全
    的头像 发表于 07-29 16:26 1829次阅读

    运行在嵌入式系统上的emApps

    在当今快节奏的嵌入式系统世界中,灵活性和适应性是嵌入式系统实现的关键。SEGGER推出了其最新创新:Embedded apps(emApps)应用,类似于手机上的应用程序,可以运行在
    的头像 发表于 06-18 09:53 1064次阅读
    运行在<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>上的emApps

    壁挂工控一体机厂家聚徽解析核心技术:嵌入式架构如何提升工业稳定性?

    的应用,探讨其如何增强工业生产的稳定性与可靠性。 嵌入式架构的硬件基石 高性能处理器的卓越运算 嵌入式架构中的工业级高性能处理器,堪称壁挂
    的头像 发表于 06-05 14:05 898次阅读

    飞凌嵌入式2025嵌入式及边缘AI技术论坛圆满结束

    飞凌嵌入式「2025嵌入式及边缘AI技术论坛」在深圳深铁皇冠假日酒店盛大举行,此次活动邀请到了200余嵌入式技术领域的技术专家、企业代表和工程师用户,共享
    的头像 发表于 04-28 13:57 4346次阅读
    飞凌<b class='flag-5'>嵌入式</b>2025<b class='flag-5'>嵌入式</b>及边缘AI技术论坛圆满结束