女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

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

冬至配餃子 ? 來源:最后一個bug ? 作者:bug菌 ? 2022-07-28 11:16 ? 次閱讀

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

1、替代乘除2

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

poYBAGLh_p-AImFvAAA2W5GUlrE647.png

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

2、異或交換兩數

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

pYYBAGLh_riAS7SuAAAifY87VMI082.png

3、判斷兩數是否同號

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

pYYBAGLh_tGAIYCpAAAl5rOKOVI627.png

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

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

poYBAGLh_uKAQV2tAAAO2YTQSA0647.png

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

4、判斷奇偶數

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

pYYBAGLh_vmAEkGqAAANv2fRzT8353.png

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

poYBAGLh_yWAEqzlAAARc6-maaI723.png

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

4、實現絕對值

實現絕對值還不簡單?abs用起來。

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

以8位整形數為例說明一下其實現,其他字長的整形類似處理:

poYBAGLh_z2AIu5OAAAU1x_YFBQ428.png

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

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

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



審核編輯:劉清

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

    關注

    146

    文章

    17847

    瀏覽量

    360620
  • 位運算
    +關注

    關注

    0

    文章

    17

    瀏覽量

    8539
收藏 人收藏

    評論

    相關推薦
    熱點推薦

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

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

    運算放大器速成課程第2部分:關鍵參數教程

    電路設計人員根據幾個器件參數選擇運算放大器。這些參數必須滿足運算放大器應用的要求。下面列出了最常考慮的參數。本教程的第2部分解釋了它們的定義和用途。
    的頭像 發表于 02-20 18:22 ?488次閱讀
    <b class='flag-5'>運算</b>放大器速成課程第2部分:關鍵參數教程

    ADS1262有效是多少?

    這ADS1262的有效32宣稱差太遠了吧?看不到ADS1262那里有數據證明達到32ENOB,不知道是不是理解錯有效
    發表于 01-10 10:17

    用ad1246采集數據,參考電壓2.5V有幾個問題請教

    現用ad1246采集數據,參考電壓2.5V,有幾個問題請教。 使用時需要對ad進行標定嗎?是不是發送幾個命令就行了,最后AD輸出的結果就是最終的二進制數據(對應下圖的Final output
    發表于 12-26 07:13

    請問有沒有ADS5404匹配的運算放大器型號推薦呢?

    想使用ADS5404(ADS5402)自制一塊板卡,前端的2路采集信號輸入功率較小,想通過運算放大,請問有沒有ADS5404匹配的運算放大器型號推薦呢?
    發表于 12-11 07:18

    4G模組Air780E的LuatOS開發之運算(bit)示例

    本文我要說的是低功耗4G模組Air780E的LuatOS開發,關于運算(bit)示例,我將詳細解析分享給大家
    的頭像 發表于 12-02 14:33 ?474次閱讀
    4G模組Air780E的LuatOS開發之<b class='flag-5'>位</b><b class='flag-5'>運算</b>(bit)示例

    Air780E模組LuatOS開發的運算(bit)教程篇!

    本次我們要學習的是4G模組Air780E的LuatOS開發,關于運算(bit)教程分享給大家
    的頭像 發表于 11-26 11:58 ?459次閱讀
    Air780E模組LuatOS開發的<b class='flag-5'>位</b><b class='flag-5'>運算</b>(bit)教程篇!

    Verilog語法中運算符的用法

    verilog語法中使用以下兩個運算符可以簡化我們的選擇代碼。
    的頭像 發表于 10-25 15:17 ?2315次閱讀
    Verilog語法中<b class='flag-5'>運算</b>符的用法

    技術干貨驛站 ▏解鎖C語言高效編程秘訣:深入解析運算符與優先級

    在C語言的學習過程中,運算符的使用是不可忽視的重要環節。本文將繼續深入探討C語言中的運算符,重點介紹運算符、賦值運算符及其優先級。掌握這些
    的頭像 發表于 10-13 08:09 ?546次閱讀
    技術干貨驛站 ▏解鎖C語言高效編程秘訣:深入解析<b class='flag-5'>運算</b>符與優先級

    TAS5825音量控制運算寬是多少,是32bit嗎?

    對于dsp運算控制音量可能會有損音質,大概32bit運算在小音量是會有幾db音質損失。 所以我想知道,TAS5825 音量控制運算寬是多少,是32bit?TI miniDSP產品中
    發表于 10-11 06:43

    比較器與運算放大器件選型應用優勢介紹

    場景卻各具特色。英銳恩科技小編大家深入探討比較器與運算放大器件的基本原理、關鍵技術差異及各自的應用優勢,以期為電子工程師提供有價值的參考。 一、基本原理概述 1. 比較器(Comparator) 比較
    發表于 09-30 09:05

    51單片機(一款國產8高性能Flash的接近感應單片機XD08M3232體驗感)

    大家推薦一款在淘寶上發現的國產A/D型具有增強型1T8051內核8高性能Flash的接近感應單片機XD08M3232,測試下來總體的感覺還是比較強大的,以下是本人試用后總結下來比較滿意的幾個
    發表于 09-25 15:15

    MATLAB(4)--MATLAB基本運算

    算術運算 基本算術運算符:+(加)、-(減)、*(乘)、/(右除)、(左除)、^(乘方)。 MATLAB的運算是在矩陣意義下運行的。 單個數據的算術運算只是矩陣
    發表于 09-06 10:18

    使用運算放大器應注意哪幾個問題

    以下是使用運算放大器時應注意的幾個關鍵問題: 運算放大器的基本原理 : 運算放大器是一種高增益、多用途的電子設備,廣泛應用于信號放大、濾波、積分和微分等電路中。 了解其基本結構,包括輸
    的頭像 發表于 08-06 14:26 ?898次閱讀

    OPA300,OPA2300,OPA301,OPA2301 16精度CMOS運算放大器數據表

    電子發燒友網站提供《OPA300,OPA2300,OPA301,OPA2301 16精度CMOS運算放大器數據表.pdf》資料免費下載
    發表于 06-14 10:29 ?0次下載
    OPA300,OPA2300,OPA301,OPA2301 16<b class='flag-5'>位</b>精度CMOS<b class='flag-5'>運算</b>放大器數據表