爲什麼Arduino不能工作?Arduino上的無符號長按位移
unsigned long test = 1 << 20;
我已經使用以下草圖測試了位移。
void setup() {
Serial.begin(9600);
unsigned long test = 0;
for(int i=0; i<32; i++)
{
test = 1 << i;
Serial.print("i:");
Serial.print(i);
Serial.print(" dec:");
Serial.println(test);
}
}
void loop() {
}
這給了我下面的輸出:
i:0 dec:1
i:1 dec:2
i:2 dec:4
i:3 dec:8
i:4 dec:16
i:5 dec:32
i:6 dec:64
i:7 dec:128
i:8 dec:256
i:9 dec:512
i:10 dec:1024
i:11 dec:2048
i:12 dec:4096
i:13 dec:8192
i:14 dec:16384
i:15 dec:4294934528 <--- ???
i:16 dec:0 <--- ???
i:17 dec:0 <--- ???
i:18 dec:0 <--- ???
i:19 dec:0 <--- ???
i:20 dec:0 <--- ???
i:21 dec:0 <--- ???
i:22 dec:0 <--- ???
i:23 dec:0 <--- ???
i:24 dec:0 <--- ???
i:25 dec:0 <--- ???
i:26 dec:0 <--- ???
i:27 dec:0 <--- ???
i:28 dec:0 <--- ???
i:29 dec:0 <--- ???
i:30 dec:0 <--- ???
i:31 dec:0 <--- ???
在第15位和持續的,會發生什麼?
在Xcode中測試整個代碼給了我預期的輸出。
因爲'1'不是'unsigned long' – 2015-04-05 17:31:15
使用'1UL'作爲常量而不是'1'。 – 2015-04-05 17:35:23
是的,做到了!謝謝你們 – Phil 2015-04-05 17:36:41