Re: [問題] 二進制的累加!

看板C_and_CPP作者 (simple life)時間15年前 (2009/03/16 02:07), 編輯推噓3(305)
留言8則, 5人參與, 最新討論串3/4 (看更多)
※ 引述《hylkevin (Kevin)》之銘言: : ※ 引述《apol1033 (Frog )》之銘言: : : 太久沒看C++忘記如何用指令了= =" : : 是用C++來控制8051單晶片 : : 想問一下如果想輸出一個訊號來控制8個LED : : 他的變化是 : : 00000001 : : 00000011 : : 00000111 : : 00001111 : : 00011111 : : 00111111 : : 01111111 : : 11111111 : : 01111111 : : 00111111 : : 00011111 : : 00000111 : : 00000011=>這邊再跑回最上面 : : 原本是想用二進制然後慢慢加,不過中間的差距不同所以不行用 : : 也想過用陣列,不過也搞不懂怎麼使用 : : 希望有人能幫解惑一下 : unsigned char led_sig=1; : bool right2left=true; : while(loop) : { // 判斷是否左位移 right2left為真則執行裡面程式碼 : if(right2left) : { // 位元左移 最低位元補零 : led_sig<<=1; // +1使最低位元為1 : ++led_sig; // 判斷全部位元是否均為1 "否" right2left依然為真 執行00000001至11111111(前半段) "是" right2left設定為否 跳至else 執行11111111至00000001(後半段) : if(led_sig==0xff) : right2left=false; : } : else : { // 位元右移 : led_sig>>=1; // 判斷是否為00000001 "真"則設定right2left為"真" : if(led_sig==1) : right2left=true; : } // 然後程式永遠不會停. : } : 我可能會這樣寫 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.7.163 ※ 編輯: kvykn 來自: 140.118.7.163 (03/16 02:09)

03/16 02:12, , 1F
這個寫註解似乎沒比較好懂..還不如給釣竿..
03/16 02:12, 1F

03/16 02:15, , 2F
你說的釣竿是一本書嗎? 還是要給控制流程咧?
03/16 02:15, 2F

03/16 02:18, , 3F
先釣給他看 不然給釣竿也不會用啊
03/16 02:18, 3F

03/16 02:20, , 4F
我是覺得程式碼加註解已經足夠 且hylkevin寫的蠻清楚明快的
03/16 02:20, 4F

03/16 02:35, , 6F

03/16 02:40, , 7F
大概的流程已經瞭解了,只差還沒實作,感謝各位的解惑@@"
03/16 02:40, 7F

03/16 04:06, , 8F
寫程式的跟寫註解的兩位大大都是好人...
03/16 04:06, 8F
文章代碼(AID): #19lKFrbU (C_and_CPP)
文章代碼(AID): #19lKFrbU (C_and_CPP)