→ jayemshow:太感謝樓上的大大了,現在馬上來試試看 !! 10/03 19:44
→ jayemshow:可否請大大告知為什麼我的 m l 設在迴圈外會死掉嗎 ? 10/03 19:55
→ jayemshow:我想說照著 j 和 k 一樣定義應該是沒問題的 10/03 19:56
不知道你有沒有寫過組語的版本, 不過我那時候學的時候老師有特別提
C 的左移和右移運算子是在空出來的位元補零
這是和 LL 與 RL 相當, 而不是像 LLC 跟 RLC 的作用
(我組語很久沒碰了可能有寫錯)
也就是說, 假設整數是八位元, 左移狀況會像這樣
a = 0x01; // ○○○○○○○●
a <<= 1; // ○○○○○○●○
a <<= 1; // ○○○○○●○○
a <<= 1; // ○○○○●○○○
a <<= 1; // ○○○●○○○○
a <<= 1; // ○○●○○○○○
a <<= 1; // ○●○○○○○○
a <<= 1; // ●○○○○○○○
a <<= 1; // ○○○○○○○○ 移到範圍外了
a <<= 1; // ○○○○○○○○ 所以這邊之後都不會有東西
所以你的燈跑一輪之後就會掛掉
必須要在最後一次左/右移後把值設回來
--
「我最想要的同伴嘛,首先是要笑口常開,其次是我們能永遠不會發生誤會。
如果這些都能辦到的話,嗯,如果他是世界上第一流的橋手,也還不錯。」
-- 班尼多‧加羅素,前義大利藍隊成員
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.81.146
※ 編輯: uranusjr 來自: 114.32.81.146 (10/03 22:09)
→ CaptainH:好像寫反了, 我記得RR/RL會 "轉回來" 10/03 22:26
推 jayemshow:感謝大大的解析,這樣我了解了 10/04 11:55