改变按位计数循环的范围

时间:2016-03-30 04:15:05

标签: c bitwise-operators countdown bit-shift

我在按位操作/数学方面苦苦挣扎,所以我希望有人能在这里帮助我。我有一个计数循环,最初从15减少到0,然后通过四个LED位变量再次返回。我试图让一个变量允许我减少这个计数的范围并仍然保持LED变量的功能。这就是我所拥有的:

int counter = 15
range = 15; // input to modify the counting loop range

// each second..
counter = (counter - 1) % 16;
led0 = (counter >> 0) & 1;
led1 = (counter >> 1) & 1;
led2 = (counter >> 2) & 1;
led3 = (counter >> 3) & 1;

我喜欢它以便将range更改为7,将关闭led3并继续循环计数器仅通过0-7范围。是否有一个简单的解决方案,或者我将不得不从头开始并设计一种新方法?

0 个答案:

没有答案