我是Microchip的PIC 18F4550的c编译器的硬件编程新手。
我的问题是,有人可以给我一个例子'如何用进位移位位'1110 => 14?
这位是一个可以去的地方。这个数字也应该减少到一点。我希望很清楚,对不起提前!
unsigned int red = 1206420333240;
LATAbits.LATA2 = red << 1;
答案 0 :(得分:0)
未经测试的基本版
unsigned result = 0;
index = 0;
while (1) {
if (result > UINT_MAX / 2) /* there will be carry on the next operation! */;
result *= 2;
result += data[index];
index++;
/* this loop needs a break somewhere */
}
答案 1 :(得分:0)
我的问题不是那么清楚。
你想知道如何向左移动整个数组,其中每个整数代表一个位(例如:{0,0,1,0} =&gt; {0,1,0,0}? 如果这样做,您可以尝试以下(假设:数组不为空):
int i;
int arraySize = sizeof(data) / sizeof(int); // You can change sizeof(int) with sizeof(data[0])
int carry = data[0];
for (i = 1; i < arraySize; i++)
data[i - 1] = data[i];