公告
2011年7月27日 星期三
2011年7月26日 星期二
神風特攻隊
2011年4月7日 星期四
2011年3月10日 星期四
茫
2011 3/10 天氣雨...
有問題的是他,為什麼我們要走?
以為努力做,上天會有眼,為什麼烤雞還是被弄小?既然這樣,年終烤雞還有什麼意義?
檸檬、薄荷、蘇打、蘭姆酒
兩杯下肚,我有點兒暈了,學生時代喝的時候擔心這擔心那,不懂得好好開懷暢飲。
現在一個人喝又有什麼意義?
開幹吧!
2011年3月6日 星期日
麻痺
2011 3/5 ......
星期五下了班,一如往常騎車回家。來到了自強隧道前的紅綠燈等待著。
「今天還是慢慢騎就好」我心裡想著。
綠燈了,轉動油門,二檔拉轉爬坡的感覺好暢快....
伴隨著轟隆隆的引擎聲,一台,兩台,三台... 越過了三台機車,我現在處於比較領先的位置。奇怪的是從隧道入口到出口,居然一台車也沒有,在下班尖峰時刻確實有點不太尋常,或許是紅綠燈的時間差所造成的吧。
於是把油門開到最大,看著指針慢慢上升,但是我卻一點感覺都沒有。
儀表沒壞,顯示出來的資訊告訴我,我現在確實是處於高速狀態。
但是我沒有快感,也沒有速度上的恐懼,頂多就是對隧道出口的測速照相會害怕而已。
這種感覺還真是奇怪,明明不久之前對於比這個還低一點的速度是會怕的說。
我想我大概是麻痺了吧... 不只是速度感,對其他東西也是...
2011年2月10日 星期四
[筆記] 有趣的C語言試題
2011 2/10 2011開春第一篇...
int x=15,y=23;
問:經x^=y^=x^=y計算後其 x,y 的值
一開始,因為 x^=y 的意思是 x = x ^ y ,「^」 是XOR運算
所以我將程式由右至左拆解成如下的方式運算
x^=y : x=24 y=23
y^=x : x=24 y=15
x^=y : x=23 y=15
所以一開始看到這個題目我說答案為: x=23 y=15
之後,因手邊沒有C所以我用了一個跟C很接近的JAVA語言來實際驗證
x^=y^=x^=y : x=0 y=15
得到的答案為:x=0 y=15 與我算出的答案不一樣,所以我便深入研究了一下下。
進而發現了一個C語言的一個規則,也可以說是這題的一個陷阱。
C語言中 「^」的運算子優先權大於「=」
所以 x^=y^=x^=y 應該是要拆成下面的式子才合理
tmp1=y^(x^y) : tmp1=15
tmp2=x^(y^(x^y)) : tmp2=0
因為「^」要先算,「=」後算,所以我先把運算結果放在暫存的變數以方便觀察,又因為多個運算子運算要由右至左算,所以加上括弧比較容易理解些。
y=tmp1 : y=15
x=tmp2 : x=0
最後做「=」運算子的部分
拆解後的程式與原程式答案一樣,故這樣的推論應該是正確的。
以上是小弟的一點淺見,若有錯歡迎大家指正以免誤人子弟。謝謝。
2011/02/10 內容錯誤更正:
上述的文章內容有錯,我不應該將二元運算子「^=」視為兩個運算子。
這個連結有很清楚的解釋:《語法》表示式運算次序的迷思
為避免連結失效,全文備份至:《語法》表示式運算次序的迷思