作者kvykn (simple life)
看板C_and_CPP
标题Re: [问题] 二进制的累加!
时间Mon Mar 16 02:07:46 2009
※ 引述《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)
1F:→ xam:这个写注解似乎没比较好懂..还不如给钓竿.. 03/16 02:12
2F:→ kvykn:你说的钓竿是一本书吗? 还是要给控制流程咧? 03/16 02:15
3F:推 hylkevin:先钓给他看 不然给钓竿也不会用啊 03/16 02:18
4F:→ kvykn:我是觉得程式码加注解已经足够 且hylkevin写的蛮清楚明快的 03/16 02:20
7F:推 apol1033:大概的流程已经了解了,只差还没实作,感谢各位的解惑@@" 03/16 02:40
8F:推 niewolf:写程式的跟写注解的两位大大都是好人... 03/16 04:06