91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

跟大家分享位運算的幾個使用小技巧

冬至配餃子 ? 來源:最后一個bug ? 作者:bug菌 ? 2022-07-28 11:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

今天跟大家分享位運算的幾個使用小技巧,這些巧妙操作都是要在項目開發(fā)或者學習中不斷積累的,如果你在后續(xù)的編碼中用上的話,不僅能夠提高代碼效率,還能為你的代碼增色不少。

1、替代乘除2

這一點應該是基本操作了,我也在往期的文章中提到過多次。

poYBAGLh_p-AImFvAAA2W5GUlrE647.png

特別是常用定點MCU的朋友,相信一點更是有自己的領悟,即使所使用的MCU帶有硬件浮點運算功能,采用整形定點運算也經常用來提高運算速度。

2、異或交換兩數(shù)

也就是我們面試題中常提到的,不用第三個變量交換兩個數(shù):

pYYBAGLh_riAS7SuAAAifY87VMI082.png

3、判斷兩數(shù)是否同號

大部分朋友判斷兩個不為0的數(shù)是否同號都是采用兩數(shù)相乘是否>0來進行判斷,當然我也見過如下寫法的:

pYYBAGLh_tGAIYCpAAAl5rOKOVI627.png

雖然兩種最終的結果,但總讓人覺得有點太初級、太累贅的感覺,所以代碼還是要寫得優(yōu)雅,才讓人覺得你有點東西。

如果你稍加處理借用異或運算來進行判斷,會給人眼前一亮的感覺。

poYBAGLh_uKAQV2tAAAO2YTQSA0647.png

然而更重要的是相對乘法運算,其速度更快。

4、判斷奇偶數(shù)

判斷奇偶數(shù)無非就是識別該數(shù)是否能夠被2整除,通常我們采用如下表達式:

pYYBAGLh_vmAEkGqAAANv2fRzT8353.png

既然本文介紹位運算,又存在某種位運算會更加高效:

poYBAGLh_yWAEqzlAAARc6-maaI723.png

其無非就是利用了奇偶整形數(shù)的二進制最后一位是否為1來進行區(qū)分。

4、實現(xiàn)絕對值

實現(xiàn)絕對值還不簡單?abs用起來。

如果要不用條件語句實現(xiàn)絕對值功能,你會如何實現(xiàn)呢?

以8位整形數(shù)為例說明一下其實現(xiàn),其他字長的整形類似處理:

poYBAGLh_z2AIu5OAAAU1x_YFBQ428.png

這里也算是異或的應用吧,異或操作"相同為0,相異為1",假如a是一個有符號正數(shù)整數(shù),a^0仍然為a,所以如上表達式對于整數(shù)仍然為原數(shù)。

而當a是一個有符號負值整形數(shù),要實現(xiàn)abs功能,勢必要“對原數(shù)取反+1“,然而巧妙的是a^0xFF剛好是對a取反,-(a>>7)則剛好是+1。

屬實巧妙,不禁有點喜歡上了異或操作運算。



審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    147

    文章

    18934

    瀏覽量

    398512
  • 位運算
    +關注

    關注

    0

    文章

    17

    瀏覽量

    8674
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    LT1468:高性能16精度運算放大器的深度剖析

    LT1468:高性能16精度運算放大器的深度剖析 在電子工程師的日常設計工作中,運算放大器是不可或缺的基礎元件。今天,我們要深入探討的是Linear Technology公司的LT1468——一款
    的頭像 發(fā)表于 01-28 10:25 ?195次閱讀

    MAX4430:高速、高精度、低失真運算放大器的卓越之選

    。今天,我們就來深入探討一下MAXIM公司推出的MAX4430 - MAX4433系列雙電源、180MHz、16精度、超低失真運算放大器。 文件下載: MAX4430.pdf 產品概述 MAX4430
    的頭像 發(fā)表于 01-27 15:45 ?158次閱讀

    高速低失真運算放大器MAX4432:技術特性與應用指南

    高速低失真運算放大器MAX4430 - MAX4433:技術特性與應用指南 在電子設計領域,高速、高精度且低失真的運算放大器一直是工程師們追求的目標。今天要給大家介紹的MAX4430
    的頭像 發(fā)表于 01-27 15:40 ?135次閱讀

    什么是

    有些信息在存儲時,并不需要占用一個完整的字節(jié), 而只需占幾個或一個二進制。 例如在存放一個開關量時,只有0和1 兩種狀態(tài), 用一二進位即可。為了節(jié)省存儲空間,并使處理簡便,C語言又提供了一種
    發(fā)表于 12-15 08:07

    芯片AES硬件運算單元好用嗎?

    我看好多芯片都支持AES硬件運算單元,感覺用起來的卻沒有幾個,不知道芯源這方面是不是和其他芯片的AES硬件一樣呢?我也想知道,這種硬件單元一般用在哪個場合比較多呢
    發(fā)表于 12-03 06:27

    單片機位數(shù)的思考(8、16、32

    8、16、32是指單片機的“字長”,也就是一次運算中參與運算的數(shù)據(jù)長度,這個位是指二進制
    發(fā)表于 11-21 08:31

    定點數(shù)表示實數(shù)的方法以及定點數(shù)在硬件上的運算驗證

    本篇主要介紹定點數(shù)表示實數(shù)的方法以及定點數(shù)在硬件上的運算驗證 為什么選定點數(shù) 32單精度浮點數(shù): 32的單精度浮點數(shù)為例,IEE754標準規(guī)定,一個flaot類型的浮點數(shù)X可以
    發(fā)表于 10-28 08:13

    卷積運算分析

    卷積運算的基礎運算是乘加運算(MAC,Multiplication and Accumulation),本文設計了基本運算單元PE模塊來實現(xiàn)MAC
    發(fā)表于 10-28 07:31

    浮點數(shù)是如何實現(xiàn)開平方運算

    一些特殊處理。 浮點數(shù)開平方運算可以表達為以下公式: 這里的符號是邏輯零,這意味著平方根塊總是期望正浮點數(shù)。平方根運算只在尾數(shù)部分進行,這可以通過任意一種平方根算法來實現(xiàn)。指數(shù)部分除以2,也就是右移
    發(fā)表于 10-24 08:42

    基于8Booth編碼的公式推導

    我們使用基于8的Booth編碼對乘法器進行修改 首先介紹一下基于4的Booth編碼公式推導: 對于P=A*B來說,將B以2進制碼表示,可以轉化為以下式子: 由于 將奇數(shù)位的運算拆分
    發(fā)表于 10-22 07:14

    浮點運算單元的設計和優(yōu)化

    浮點運算單元的設計和優(yōu)化可以從以下幾個方面入手: 1.浮點寄存器設計:為了實現(xiàn)浮點運算指令子集(RV32F或者RV32D),需要添加一組專用的浮點寄存器組,總共需要32個通用浮點寄存器。其中
    發(fā)表于 10-22 07:04

    risc-v中浮點運算單元的使用及其設計考慮

    的應用。 在RISC-V中,浮點運算單元分為單精度浮點數(shù)(32)和雙精度浮點數(shù)(64),通常包括以下幾種基本功能: 加法器/減法器:用于執(zhí)行浮點數(shù)的加減運算。 乘法器:用于執(zhí)行浮點
    發(fā)表于 10-21 14:46

    優(yōu)化boot4的乘法運算周期

    可以在不同的時鐘周期內完成,從而并行化運算流程,提高乘法器的運算性能。 采用多級壓縮:在Boot4乘法器中,使用了基于連乘算法的多級壓縮技術??梢酝ㄟ^增加多級壓縮,進一步降低管理乘法器寬度的開銷,提升性能。 優(yōu)化算法:在尋找算
    發(fā)表于 10-21 13:17

    大家一起來總結我半年內參加三次鴻蒙比賽,失利了兩次的經驗,這體驗真刺激?。?!

    highlight: a11y-dark theme: arknights Hello,大家好,我是陳楊。自從參加完華為HDC大會之后,我就一直在猶豫要不要繼續(xù)開發(fā)華為鴻蒙應用嗎?導致這個原因就是我
    的頭像 發(fā)表于 03-16 16:03 ?685次閱讀

    PKA外設RSA模冪運算2048計算結果和在線工具計算的不一樣是怎么回事?

    參照STM32WLE5的官方PKA例程,2048的模密運算結果和在線工具計算的結果不一樣,有遇到類似情況的朋友嗎
    發(fā)表于 03-10 07:28