我在按位操作/数学方面苦苦挣扎,所以我希望有人能在这里帮助我。我有一个计数循环,最初从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范围。是否有一个简单的解决方案,或者我将不得不从头开始并设计一种新方法?