Re: [問題] 請問一下這五個迴圈如何化簡?
※ 引述《han999 (999就是久久久!)》之銘言:
: 我寫一個土法煉鋼的跑馬燈程式如下:
: //○不亮
: //●亮
: /* 16進制 8421 8421
: 0x81=左一右一 ●○○○ ○○○●
: 0x42=左二右二 ○●○○ ○○●○
: 0x24=左三右三 ○○●○ ○●○○
: 0x18=左四右四 ○○○● ●○○○
: 0x24=左三右三 ○○●○ ○●○○
: 0x42=左二右二 ○●○○ ○○●○
: 0x81=左一右一 ●○○○ ○○○●
: */
左半部 右半部
也可以把左半部的 bit 跟右半部的 bit 分開看,
左邊每次往右一個 bit, 右邊每次往左一個 bit.
int left = 0x80;
int right = 0x01;
while (1) {
P1OUT = left | right;
left = (left >> 1) | ((left & 1) << 7); // left rotate
right = (right << 1) | (right >> 7); // right rotate
if (left == 0x08) continue; // skip the duplicate case
delay();
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 221.169.204.127
※ 編輯: iamlouis 來自: 221.169.204.127 (06/30 23:58)
→
07/12 03:52, , 1F
07/12 03:52, 1F
推
07/12 13:44, , 2F
07/12 13:44, 2F
→
07/12 13:44, , 3F
07/12 13:44, 3F
討論串 (同標題文章)
ASM 近期熱門文章
PTT數位生活區 即時熱門文章