在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何用C語言的位運(yùn)算實(shí)現(xiàn)加法操作詳解

STM32嵌入式開發(fā) ? 來源:STM32嵌入式開發(fā) ? 作者:STM32嵌入式開發(fā) ? 2021-04-13 10:23 ? 次閱讀

分享本文,希望能起到拋磚引玉的作用,加深朋友對位運(yùn)算以及計(jì)算機(jī)底層的認(rèn)識(shí)。

有如下十進(jìn)制的加法運(yùn)算:

13 + 9 = 22

我們像這樣來拆分這個(gè)運(yùn)算過程:

不考慮進(jìn)位,分別對各位數(shù)進(jìn)行相加,結(jié)果為sum:

個(gè)位數(shù)3加上9為2;十位數(shù)1加上0為1;最終結(jié)果為12;

只考慮進(jìn)位,結(jié)果為carry:

3 + 9 有進(jìn)位,進(jìn)位的值為10;

如果步驟2所得進(jìn)位結(jié)果carry不為0,對步驟1所得sum,步驟2所得carry重復(fù)步驟1、 2、3;如果carry為0則結(jié)束,最終結(jié)果為步驟1所得sum:

這里即是對sum = 12 和carry = 10重復(fù)以上三個(gè)步驟,(a) 不考慮進(jìn)位,分別對各位數(shù)進(jìn)行相加:sum = 22; (b) 只考慮進(jìn)位: 上一步?jīng)]有進(jìn)位,所以carry = 0;(c) 步驟2carry = 0,結(jié)束,結(jié)果為sum = 22。

把上面的運(yùn)算過程放在二進(jìn)制中試試。

13和9的二進(jìn)制分別為:

0000 11010000 1001

①不考慮進(jìn)位,分別對各位數(shù)進(jìn)行相加得到sum:?

0000 0100

②當(dāng)考慮進(jìn)位,有兩處進(jìn)位,第0位和第3位,只考慮進(jìn)位的結(jié)果為carry:

0001 0010

③判斷carry是否為0,為0則結(jié)束,最終計(jì)算結(jié)果為sum;如果carry不為0,則進(jìn)行如下操作,并重復(fù)步驟①②③:

sum+=carry

上面步驟③中判斷carry不為0,回到步驟①:

不考慮進(jìn)位,sum+carry= :

0001 0110

步驟②:

只考慮進(jìn)位,carry =:

0

步驟③:

判斷carry為0,結(jié)束,最終sum=:

0001 0110

轉(zhuǎn)換成十進(jìn)制剛好是22,十進(jìn)制的算法同樣適用于二進(jìn)制!

仔細(xì)觀察發(fā)現(xiàn):

第①步不考慮進(jìn)位的加法其實(shí)就是異或運(yùn)算

第②步只考慮進(jìn)位就是按位與運(yùn)算之后左移一位

第③步就是重復(fù)前面兩步操作,直到第二步進(jìn)位結(jié)果為0

這里為什么要循環(huán)步驟①②③,直到步驟②所得進(jìn)位carry等于0呢?這是因?yàn)橛械臄?shù)做加法時(shí)會(huì)出現(xiàn)連續(xù)進(jìn)位的情況。在第③步檢測carry如果為0,則表示沒有進(jìn)位了,此時(shí),此次循環(huán)第①步的sum即為最終的結(jié)果。

通過位運(yùn)算實(shí)現(xiàn)加法

按照上面的分析,寫出通過位運(yùn)算實(shí)現(xiàn)加法的如下代碼:

// 遞歸寫法 int add(int num1, int num2){if(num2 == 0) return num1;int sum = num1 ^ num2;int carry = (num1 & num2) 《《 1;return add(sum, carry);}

// 迭代寫法 int add(int num1, int num2){ int sum = num1 ^ num2; int carry = (num1 & num2) 《《 1; while(carry != 0){ int a = sum; int b = carry; sum = a ^ b; carry = (a & b) 《《 1; }return sum;}
編輯:lyn

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

    關(guān)注

    180

    文章

    7608

    瀏覽量

    137150
  • 位運(yùn)算
    +關(guān)注

    關(guān)注

    0

    文章

    17

    瀏覽量

    8440

原文標(biāo)題:通過C語言的位運(yùn)算實(shí)現(xiàn)加法操作

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    FPGA中浮點(diǎn)四則運(yùn)算實(shí)現(xiàn)過程

    (減)法運(yùn)算 基于FPGA 實(shí)現(xiàn)的浮點(diǎn)加法運(yùn)算包括了一系列對尾數(shù)和指數(shù)部分的操作:移位、交換、格式化、舍入和格式化等。如下圖所示,自定義浮點(diǎn)
    的頭像 發(fā)表于 11-16 11:19 ?506次閱讀
    FPGA中浮點(diǎn)四則<b class='flag-5'>運(yùn)算</b>的<b class='flag-5'>實(shí)現(xiàn)</b>過程

    C語言指針運(yùn)算詳解

    C語言中,當(dāng)你有一個(gè)指向數(shù)組中某個(gè)元素的指針時(shí),你可以對該指針執(zhí)行某些算術(shù)運(yùn)算,例如加法或減法。這些運(yùn)算可以用來遍歷數(shù)組中的元素,如ptr
    的頭像 發(fā)表于 10-30 11:16 ?272次閱讀

    技術(shù)干貨驛站 ▏解鎖C語言高效編程秘訣:深入解析運(yùn)算符與優(yōu)先級

    C語言的學(xué)習(xí)過程中,運(yùn)算符的使用是不可忽視的重要環(huán)節(jié)。本文將繼續(xù)深入探討C語言中的運(yùn)算符,重點(diǎn)
    的頭像 發(fā)表于 10-13 08:09 ?299次閱讀
    技術(shù)干貨驛站 ▏解鎖<b class='flag-5'>C</b><b class='flag-5'>語言</b>高效編程秘訣:深入解析<b class='flag-5'>運(yùn)算</b>符與優(yōu)先級

    技術(shù)干貨驛站 ▏深入理解C語言:編程高手必備,全方位解析運(yùn)算符的核心技能!

    C語言的編程領(lǐng)域中,運(yùn)算符是實(shí)現(xiàn)數(shù)據(jù)處理與邏輯操作的關(guān)鍵工具。無論是在處理簡單的數(shù)值計(jì)算,還是在構(gòu)建復(fù)雜的邏輯結(jié)構(gòu)時(shí),
    的頭像 發(fā)表于 09-18 15:56 ?372次閱讀
    技術(shù)干貨驛站 ▏深入理解<b class='flag-5'>C</b><b class='flag-5'>語言</b>:編程高手必備,全方位解析<b class='flag-5'>運(yùn)算</b>符的核心技能!

    c語言從右到左的運(yùn)算符有哪些

    以下是一些主要的從右到左運(yùn)算C語言運(yùn)算符: 函數(shù)調(diào)用運(yùn)算符 ( () ):當(dāng)您調(diào)用一個(gè)函數(shù)時(shí),參數(shù)列表是從右到左進(jìn)行求值的。 后置遞增
    的頭像 發(fā)表于 08-20 11:39 ?1089次閱讀

    串行加法器和并行加法器的區(qū)別?

    串行加法器和并行加法器是兩種基本的數(shù)字電路設(shè)計(jì),用于執(zhí)行二進(jìn)制數(shù)的加法運(yùn)算。它們在設(shè)計(jì)哲學(xué)、性能特點(diǎn)以及應(yīng)用場景上有著明顯的區(qū)別。
    的頭像 發(fā)表于 05-23 15:06 ?2754次閱讀

    加法器的原理是什么 加法器有什么作用

    加法器是數(shù)字電路中的基本組件之一,用于執(zhí)行數(shù)值的加法運(yùn)算加法器的基本原理和作用可以從以下幾個(gè)方面進(jìn)行詳細(xì)闡述。
    的頭像 發(fā)表于 05-23 15:01 ?3310次閱讀
    <b class='flag-5'>加法</b>器的原理是什么 <b class='flag-5'>加法</b>器有什么作用

    同相加法器和反相加法器的區(qū)別是什么

    同相加法器和反相加法器是運(yùn)算放大器在模擬電路設(shè)計(jì)中常用的兩種基本電路結(jié)構(gòu),它們在信號處理方面有著不同的特性和應(yīng)用場景。
    的頭像 發(fā)表于 05-23 14:35 ?2724次閱讀

    verilog語音實(shí)現(xiàn)浮點(diǎn)運(yùn)算

    Verilog可以通過使用IEEE標(biāo)準(zhǔn)的浮點(diǎn)數(shù)表示來實(shí)現(xiàn)浮點(diǎn)運(yùn)算。下面是一個(gè)基本的Verilog模塊示例,展示了如何進(jìn)行加法、乘法和除法等常見的浮點(diǎn)運(yùn)算
    發(fā)表于 03-25 21:49

    C語言變量應(yīng)用詳解

    變量其實(shí)只不過是程序可操作的存儲(chǔ)區(qū)的名稱。C 中每個(gè)變量都有特定的類型,類型決定了變量存儲(chǔ)的大小和布局,該范圍內(nèi)的值都可以存儲(chǔ)在內(nèi)存中,運(yùn)算符可應(yīng)用于變量上。
    發(fā)表于 03-18 11:18 ?430次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>變量應(yīng)用<b class='flag-5'>詳解</b>

    加法運(yùn)算電路和減法運(yùn)算電路的區(qū)別

    加法運(yùn)算的電路如下圖所示,輸出電壓為若干個(gè)輸入電壓的比例和
    的頭像 發(fā)表于 02-19 09:52 ?7680次閱讀
    <b class='flag-5'>加法</b><b class='flag-5'>運(yùn)算</b>電路和減法<b class='flag-5'>運(yùn)算</b>電路的區(qū)別

    什么是反相加法運(yùn)算電路?反相加法運(yùn)算電路與減法運(yùn)算電路

    在電子技術(shù)的海洋中,有一種電路如同數(shù)學(xué)中的加法器一樣,能夠?qū)⒉煌男盘栠M(jìn)行相加處理。這就是被廣泛應(yīng)用于信號處理領(lǐng)域的反相加法運(yùn)算電路。
    的頭像 發(fā)表于 02-17 15:34 ?4839次閱讀
    什么是反相<b class='flag-5'>加法</b><b class='flag-5'>運(yùn)算</b>電路?反相<b class='flag-5'>加法</b><b class='flag-5'>運(yùn)算</b>電路與減法<b class='flag-5'>運(yùn)算</b>電路

    c語言,c++,java,python區(qū)別

    C語言C++、Java和Python是四種常見的編程語言,各有優(yōu)點(diǎn)和特點(diǎn)。 C語言
    的頭像 發(fā)表于 02-05 14:11 ?2461次閱讀

    STM32開發(fā)中的運(yùn)算以及操作

    STM32開發(fā)中的運(yùn)算以及操作? 運(yùn)算是計(jì)算機(jī)中常用的一種
    的頭像 發(fā)表于 02-02 14:38 ?1724次閱讀

    反相加法運(yùn)算電路原理介紹

    反相加法運(yùn)算電路利用運(yùn)算放大器(通常簡稱為Op-Amp)的特性來實(shí)現(xiàn)多個(gè)輸入信號的加法運(yùn)算。每個(gè)
    的頭像 發(fā)表于 01-31 15:53 ?4115次閱讀
    反相<b class='flag-5'>加法</b><b class='flag-5'>運(yùn)算</b>電路原理介紹
    主站蜘蛛池模板: 特极毛片| 久久青草免费免费91线频观看| 视频一区中文字幕| 亚洲4区| 亚洲视频入口| 久久 在线播放| 伊人久久影院大香线蕉| 亚洲国产色婷婷精品综合在线观看| 亚洲国产精品久久久久婷婷老年| 五月婷婷基地| 欧美日韩一区视频| 国模啪啪一区二区三区| 大色综合色综合网站| 亚洲午夜在线视频| 欧美视频图片| 欧美乱xxxxxxxxx| 男女一进一出无遮挡黄| 亚洲视频欧美视频| 日本怡红| 国产农村女人一级毛片了| 一级黄色录像视频| 久久精品国产免费看久久精品| 天天色色色| 欧美另类亚洲一区二区| 午夜影院色| 看日本黄色大片| 欲色淫香| 国产精品网站在线进入| 色吧色吧色吧网| 香蕉蕉亚亚洲aav综合| 免费日韩一级片| 中文天堂网| 波多野结衣福利| 老师受不了了好硬好大| 四虎网址大全| 国产三级高清| 欧美aaaav免费大片| 在线免费公开视频| 色综合中文字幕| 国产普通话一二三道| 人人操天天射|