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;

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

    关注

    5186

    文章

    20159

    浏览量

    328999
  • 位运算
    +关注

    关注

    0

    文章

    17

    浏览量

    8642

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    什么是嵌入式操作系统

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    如何正确选择嵌入式文件系统

    Linux嵌入式系统中,文件系统和缓存机制常导致数据存储稳定性问题。本文通过案例分析原因,对比不同文件系统特性,为开发者提供优化建议,助力提
    的头像 发表于 03-17 11:35 868次阅读
    如何正确选择<b class='flag-5'>嵌入式</b>文件<b class='flag-5'>系统</b>?

    速度更快,传输更稳定的工业相机COF接口

    工业相机的数据接口之一COF接口,速度更快,传输更稳定的。
    的头像 发表于 03-10 17:32 870次阅读
    速度<b class='flag-5'>更快</b>,传输<b class='flag-5'>更稳定</b>的工业相机COF接口

    如何提高嵌入式代码质量?

    嵌入式系统的发展已经深刻地影响了我们日常生活的方方面面,从智能家居到汽车控制系统,再到医疗设备和工业自动化等领域,嵌入式系统无处不在。
    发表于 01-15 10:48

    嵌入式主板的概述与发展

    随着科技的迅猛发展,嵌入式系统在现代电子产品中扮演着越来越重要的角色。嵌入式主板作为嵌入式系统的核心组件之一,承担着控制、处理和通讯等多种功
    的头像 发表于 01-13 16:30 1187次阅读
    <b class='flag-5'>嵌入式</b>主板的概述与发展

    MPU在嵌入式系统中的应用

    它们。这包括算术运算、逻辑运算和数据传输等操作。 数据处理:MPU能够对数据进行处理,包括数据的读取、写入、存储和传输。 控制:MPU控制嵌入式系统中的其他硬件设备,如传感器、执行器和
    的头像 发表于 01-08 09:26 1518次阅读

    LDO在嵌入式系统中的应用 常见LDO故障及解决方法

    的应用及其常见故障和解决方法的概述。 应用场景 电源转换 :LDO可以将电池电压或其他电源电压转换为嵌入式系统所需的稳定电压。 噪声抑制 :LDO能有效降低电源线上的噪声,为敏感的模拟电路提供干净的电源。 功耗管理 :在低功耗应
    的头像 发表于 12-13 09:08 3095次阅读