作者beagle (红茶犬)
站内Electronics
标题Re: [问题] 8051之c语言问题
时间Sat Feb 3 19:47:14 2007
※ 引述《CuckooBoy (阿书)》之铭言:
: sorry!可能是我表达不好!a是计数器,x是用来送讯号1或0
: 我是要写下面的波型动作
: 0000000000000001000000000000001100000000000000010000000000000011.......
: ^ ^^ ^ ^^
这个 32 bit 花样不断重复的话, 可以这样写 (a 的计数从 1 开始)
if ((a%32==16) || (a%32==31) || (a%32==0)) { /* 注意不要写成 a%32==32 */
x = 1;
} else {
x = 0;
}
利用 modulo 运算就可以制造出不断重复的效果...
a%32==16 || a%32==0 两个可以合并成 a%16==0,
我只是为了要说明 if 的判断状况才这样写, 讲究效率的话还有改善空间。
: 往後可能会改成
: 0000000000000001000000000000000100000000000000010000000000000011
: ^ ^ ^ ^^
: 用1告诉电脑资料已经16笔
: 用11告诉电脑程式已经送完了~~
: 所以1可能出现.........很多次,但11只会出现一次.....
那可以在 a%32==31 的时候, 判断一下这个 moment 该不该送 1 了...
看起来第 31 个 bit 是结束记号的作用...
其他 a%16==0 的状况就一直送 1 即可...
--
吃甜食有何不可? 有在用脑就不会变胖了喔。
-- L
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.254.153
1F:→ CuckooBoy:原来余数可以这样用,感谢你!!我会将它记入脑里! 02/03 23:59