作者LPH66 (-858993460)
看板Programming
標題Re: [問題] 新手發問 "!!"的意思
時間Thu Mar 8 21:51:03 2012
※ 引述《Barros (Leila)》之銘言:
: 看資料結構的書的時候,應該是用c寫的吧
: 發現code裡出現 !! 這個符號
: 煩請解惑感激不盡~
: 節錄部份code:
: switch( !!T1 + 2 * !! T2 + 4 * !! Carry)
: {
: case 0: /*no trees*/
: case 1: /*only H1*/
: break;
這是懶人用switch...
!! 是做兩次 boolean not
所以非零的會變成 1 是零的就還是 0
於是 !!T1 + 2 * !! T2 + 4 * !! Carry 這個算式
將三件事 (T1 != 0, T2 != 0, Carry != 0) 編碼成一個整數
若三者都為 0 則它會算出二進位的 000 = 十進位 0
若只有 T1 非 0 則它會算出二進位的 001 = 十進位 1
若只有 T2 非 0 010 = 十進位 2
若只有 Carry 非 0 100 = 十進位 4
等等
這樣就能以 switch 一次判斷三個條件的真假
你可以注意到這個 switch 裡的 case 有註解寫說這是什麼情況
就是這麼來的
--
い
ああオレたちには見えてるモノがあるbデ きっと誰にも奪われないモノがあるはずさ
け
開口一番一虚一実跳梁跋扈形影相弔yュL羊頭狗肉東奔西走国士無双南柯之夢 歪も
ぶ
意味がないと思えるコトがある ラPきっとでも意図はそこに必ずある んの
く
依依恋恋空前絶後疾風怒濤有無相生 ラH急転直下物情騷然愚者一得相思相愛 だが
ろ
無意味じゃない ラ6あの意図が 恋た
で
有為転変死生有命蒼天已死黄天當立 !!6五里霧中解散宣言千錯万綜則天去私 のり
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.28.91
推 Barros:了解了,謝謝 219.84.58.43 03/08 22:47
→ MOONRAKER:超深奧… 61.231.8.206 03/09 08:46
→ final01:程式設計師有必要那麼懶嗎 211.21.157.199 03/10 12:19
推 teslare:樓上,如同文學,程式精鍊也是一種藝術呀 :p111.240.229.236 03/10 15:34
→ MOONRAKER:保證別人絕看不懂也無法改的藝術。 61.231.8.206 03/10 18:06
推 powertodream:受教了!一直不懂為什麼要寫這樣 220.135.0.69 03/10 22:54
推 PCIT:真是上了一課… 72.201.78.127 03/11 13:49