[問題] 只能使用邏輯運算子和遞迴的加法

作者: wtchen (沒有存在感的人)   2015-01-01 03:43:40
各位好,我在看成大資工進階嵌入式系統開發與實做 (2014 年秋季 ) 課程說明
http://fr.slideshare.net/jserv/embedded2014
裏面有兩個c基本問題:
1. 只能使用邏輯運算子和遞迴,在C程式中實做兩個整數的加法
void add(int a, int b) { ... }
2. 使奇偶位的位元相互交換,儘量用最短的程式碼
(bit 0 <-> bit 1; bit 2 <-> bit 3; bit 4 <
作者: CaptainH (Cannon)   2015-01-01 03:45:00
第一題是要做個加法器?
作者: wtchen (沒有存在感的人)   2015-01-01 03:58:00
似乎是不能有"+"的加法器...
作者: BombCat (炸彈貓)   2015-01-01 08:36:00
http://ideone.com/ryZl63 不推,不要浪費時間去上比較好
作者: carylorrk (carylorrk)   2015-01-01 09:06:00
學過數位邏輯的加法器嗎
作者: LiloHuang (十年一刻)   2015-01-01 11:17:00
int add(int a, int b) {if (b == 0) return a;return add(a ^ b, (a & b) << 1);} // 第一題是很常見的考題
作者: PoorLoser (廢文製造機)   2015-01-01 11:55:00
用組語寫,咬我啊
作者: descent (「雄辯是銀,沉默是金」)   2015-01-01 13:22:00
永遠都有難倒人的題目
作者: tubbysong (song)   2015-01-01 13:59:00
(某數 & 0x010101)就抽出奇數位元,<<左旋
作者: fireslayer (fireslayer)   2015-01-01 16:51:00
第二題看起來可以一行解決
作者: LiloHuang (十年一刻)   2015-01-01 17:03:00
第二題的一行解已經在 BombCat 貼的連結內了取出奇數位得使用 0x55555555,得用 0b 才是二進制表示
作者: tubbysong (song)   2015-01-01 19:55:00
add numbers without plus operator
作者: carylorrk (carylorrk)   2015-01-01 22:56:00
0x010101 是 0b010101 才對吧XD
作者: cpper (韓立)   2015-01-02 04:00:00
這種和現實工作脫節的題目根本不用浪費時間去寫它
作者: kikiqqp (喵食罐頭)   2015-01-02 22:11:00
如果你的工作是寫組語貨單晶片,這根本沒有脫節
作者: x000032001 (版廢了該走了)   2015-01-02 23:18:00
看一下推文 再看一下誰開的課 恩...
作者: uranusjr (←這人是超級笨蛋)   2015-01-02 23:51:00
只好召喚老師踹共了
作者: wtchen (沒有存在感的人)   2015-01-03 01:46:00
我只想問個問題,為啥^和&算是邏輯運算子?我印象中&和^不是位元運算子嗎?
作者: LPH66 (-6.2598534e+18f)   2015-01-03 01:50:00
對位元做邏輯運算
作者: jserv (松鼠)   2015-01-03 08:33:00
課程說明已說,鎖定的對象是高產值的工作職務和研究議題當然不是為了 8051 等級或者組裝軟硬體就能出貨的工作我在業界工作十餘年,感覺太多人故步自封,出這些題目,只是讓同學們思考不一樣的切入點,當然,這顯然不是最有效的學習方式,但大學教育本來就是多元,我們有責任讓學生體驗到嵌入式系統的多個面向,並且勉勵同學探究高產值的的公司或研究單位,到底都在關注哪些議題 -- by 授課教師http://wiki.csie.ncku.edu.tw/embedded/rehearsal #資訊科技產業面試模擬和工作咨詢收錄了相關的題目和面試策略的建議,歡迎各位朋友善加使用,大家多交流學習@wtchen: 感謝指正,這簡報用詞不精確,燒後會修正
作者: EdisonX (卡卡獸)   2015-01-03 08:49:00
jserv 好有心
作者: tubbysong (song)   2015-01-03 12:32:00
還不錯的腦力激盪,期待更多題目分享
作者: LiloHuang (十年一刻)   2015-01-03 14:35:00
推 jserv 大神
作者: kikiqqp (喵食罐頭)   2015-01-03 15:11:00
推文召喚到宅色夫 XD
作者: tjjh89017 (伊達政宗)   2015-01-03 17:32:00
老師好<(_ _)>
作者: sa074463 (壘包)   2015-01-03 19:38:00
真的召喚到老師了...
作者: HowLeeHi (處處留心皆正妹)   2015-01-04 22:13:00
說神來,神就來了...
作者: wtchen (沒有存在感的人)   2015-01-05 18:24:00
老師好,請問有打算弄成開放式課程或放上coursera嗎?(身為社會人士很難去旁聽阿...)如果需要經費,我雖然家無恆產但是願意盡棉薄之力
作者: KoenigseggG (地表最速)   2015-01-05 23:46:00
原po要不要直接寄信問看看?slides第一頁有email~這問題其實很多人都有在FB上問過XD
作者: CP64 (( ̄▽ ̄#)﹏﹏)   2015-01-07 01:08:00
剛剛試著寫過一次發現居然對了.... 好感動 (?想問一下 return b == 0 ? add( a^b, a&b) : a^b ;更正 !=這樣的寫法好嗎 @@?糟糕 測試不夠 現醜了 QQreturn b == 0 ? a|b : add( a^b, (a&b)<<1);

Links booklink

Contact Us: admin [ a t ] ucptt.com