→ james732:這個網頁可能有幫助 08/04 13:00
→ angleevil:超哥,我把位元數從32改成64.使用unsigned的,前32位元是0 08/04 13:12
→ angleevil:目前我只知道unsigned代表是正數.有網頁或是超哥親自講 08/04 13:14
→ angleevil:解一下嘛<m.m> 08/04 13:14
→ james732:我寫成 unsgined long 就正常了 (long長度是8 bytes) 08/04 13:16
→ james732:不過我也不知道為什麼 08/04 13:17
推 suhorng:unsigned的話 右移左邊會補0 但是signed的話 右移左邊會 08/04 13:18
→ suhorng:補上sign bit,所以負數會補1,正數會補0 08/04 13:19
→ suhorng:像是 shr 指令跟 sar 指令的差別 08/04 13:19
推 angleevil:謝謝suhorng 08/04 13:29
→ james732:為什麼沒有謝謝我 XD 08/04 13:31
→ XYX16888:感謝兩位的幫忙!! 08/04 13:36
→ angleevil:謝謝james732 08/04 13:46
→ tropical72:補一下, suhorng 說明應是以 2's 系統為主。 08/04 14:02
→ tropical72:Primer 4e p155 指出,"若運算元為 signed,可插入 sign 08/04 14:02
→ tropical72:bit複件或其值為0之bits," "「取決於編譯器作法」" 08/04 14:03
→ angleevil:其實我有一部分就是苦惱在編譯器作法.不然我也不會追問 08/04 14:43
→ angleevil:下去.但是suhorng的想法應該是一種好解釋. 08/04 14:44
→ Minilogo:藉機問一下, machine dependent和取決於編譯器是一樣意 08/04 15:17
→ Minilogo:嗎? 因為我的 c primer plus(英文版)是這樣寫的 08/04 15:20
→ angleevil:我覺得machine dependent,應該是取決於OS,例如:win or 08/04 15:28
→ angleevil:unix.但是我沒看英文版的習慣.看看其他人怎麼說吧 08/04 15:29
→ tropical72:machine d~,之前我視作 CPU d~ (可能有誤),至於 primer 08/04 15:35
→ tropical72:那裡敘述這段時.若你只看到 machine d~,代表後面還沒看 08/04 15:36
→ Minilogo:感謝 angleevil 和 tropical, 看來這詞比我想像中指涉到 08/04 15:47
→ Minilogo:更多東西 08/04 15:47
推 suhorng:抱歉...我都沒看過標準或C++ Primer,純粹是自己反組譯看指 08/04 18:41
→ suhorng:令整理... 08/04 18:41
→ angleevil:TAT 看來又要苦苦研究一番. 我的感覺是取絕不同平台造成 08/04 19:00
→ angleevil:的不同.也就是OS的不同造成編譯器用不同方式處理 08/04 19:01
→ tropical72:我覺得這個知道就算了,一些程式我也都用su~的假設在寫 08/04 19:04
推 littleshan:幹嘛不這樣用: printf("%s\n", str[a<b]); 08/04 19:07
→ littleshan:比較運算的結果是int,數值只會是0或1,這是標準規定 08/04 19:08
推 littleshan:對了,如果a-b會造成underflow,即使是2's系統也會gg 08/04 19:11
推 tropical72:!! 我又看到驚艷的碼了,真的是沒想到. 08/04 19:12
→ angleevil:等等,str是char array,這樣要怎麼比大小.可以麻煩 08/04 20:49
→ angleevil:littleshan講解一下嗎? 我只知道a<b的值非0即1.但是 08/04 20:50
→ angleevil:為何這樣可以比? 08/04 20:51
→ loveme00835: printf("%s\n", str[a<b]); 其實還有隱式轉換一次 08/04 20:51
→ tropical72:@angleevil:那是 array of pointer to char,不是 08/04 20:58
→ tropical72:char array. 08/04 20:58
→ tropical72:(array of pointer to string 會好點嗎? XD ) 08/04 21:00
→ angleevil:~"~其實那個細節可以之後慢慢討論.我最好奇是為何 08/04 21:06
→ angleevil:可以取代judgement statement.我有點想不通卻又很想學 08/04 21:07
→ angleevil:請成全新手的我再度進步Orz 08/04 21:07
→ suhorng:它只是要a<b的話puts(str[0]); !(a<b)的時候puts(str[1]); 08/04 21:08
→ suhorng:的效果 08/04 21:08
→ angleevil:...拍謝,我犯糊塗了...我沒看原po的文章.對.這樣就可 08/04 21:11
→ angleevil:Orz. 08/04 21:12
→ angleevil:就可以.因為我只記得左移的位元有規定補零, 08/04 22:58
→ angleevil:右移的位元可0可1. 08/04 22:59
推 StranGhost:好好學ASM~ 08/06 10:22