2012年3月9日 星期五

新手發問!!的意思

作者: 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 有註解寫說這是什麼情況

就是這麼來的

--
い [1;36mああオレたちには見 [31mえてるモ [37mノがある [;30mb [1;32mデ [37mきっと誰 [31mにも奪われないモ [36mノがあるはずさ
け  [36m開口一番一虚一実 [31m跳梁跋扈 [1;30m形影相弔 [;30my [1;32mュ [;30mL [1m羊頭狗肉 [;31m東奔西走国士無双 [36m南柯之夢  歪も
ぶ      [1;36m意味がないと [31m思えるコ [37mトがある [32m ラ [;30mPきっとで [31mも意図はそこに必 [36mずある    んの
く  [36m依依恋恋空前絶後 [31m疾風怒濤 [1;30m有無相生 [32m ラ [;30mH [1m急転直下 [;31m物情騷然愚者一得 [36m相思相愛  だが
ろ                    無意味 [37mじゃない [32m ラ [;30m6あの意図 [31mが                        恋た
で  [36m有為転変死生有命 [31m蒼天已死 [1;30m黄天當立 [32m !! [;30m6 [1m五里霧中 [;31m解散宣言千錯万綜 [36m則天去私  のり

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.28.91
推 Barros:了解了,謝謝                                219.84.58.43 03/08 22:47

沒有留言:

張貼留言

您好.本資料庫並非第一手資料.如果你有對文章作者的詢問,意見與需求,請自行找尋文章作者並提供意見,謝謝.