作者yoco (眠月)
看板C_and_CPP
標題Re: [問題] 位元運算
時間Sun Dec 28 01:00:44 2014
※ 引述《caxz ( )》之銘言:
: 問兩個我面試時預到的C問題
: [問題一]
: unsign long v1 = 0x 00001111
: unsign long v2 = 0x 00001202
: unsign long v
: v= v1&(~v2)
: v= v|v2
: 請問這種位元運算有什麼方法教有效率的算法?
不是很確定你想要表達的意思,不過 v = v1 &(~v2)
v = v | v2
這兩行是不是可以化簡成一行 v = (v1 & (~v2)) | v2
然後把這個真值表寫出來,可以得到
v1 v2 ∣(v1 & (~v2)) | v2
───┼─────────
0 0 │ 0
0 1 │ 1
1 0 │ 1
1 1 │ 1
看起來等價於 v1 | v2
所以 v = (v1 & (~v2)) | v2 這一行,應該是可以化簡成 v = v1 | v2
: 我只會笨笨的轉換成二進位作運算再轉回16進位
: [問題二]
: Rewrite *((*papf)[3])(char *) as typedef _______
: 完全看不懂再問什麼?
: 感謝各位賜教啦
你確定你題目對嗎?根本不合法,無法作答
--
To iterate is human, to recurse, divine. L. Peter Deutsch 嫩嫩迴圈 大大遞迴
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 115.43.79.111
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1419699646.A.EDF.html
→ bigpigbigpig: 布林代數分配律:A|(B&C) = (A|B) & (A|C) 12/28 10:50
→ bigpigbigpig: v = (v1&(~v2))|v2 = (v1|v2)&(v2|(~v2)) = v1|v2 12/28 10:51
→ tubbysong: V1 & (~v2)=(~v1)|v2 12/29 03:36
推 tubbysong: 一個funcation空間(自定型別)paaf3是傳入植,char是 12/29 03:47
→ tubbysong: 查call back typeof有 12/29 03:48
→ ACMANIAC: 原來如此,可能面試要考的是這個?! 12/29 13:05
→ yoco315: 我化簡錯誤了嗎 XD 對不起 12/29 15:58
推 bleed1979: 難得原po會承認自己錯誤,給推。 01/01 01:05
→ yoco: 不好意思,我發現我化簡對了,完全正確 ︿︿ 01/01 01:06
推 bleed1979: 原來是原po口誤。因為化簡對了,給推鼓勵。 01/01 01:07