uint32_t data = 0xFFFFFFFF;
Serial.println(data, BIN);
data = 0xFFFFFFFF;
bitClear(data, 30);
Serial.println(data, BIN);
data = 0xFFFFFFFF;
bitClear(data, 31);
Serial.println(data, BIN);
OutputsOn my mega outputs:
11111111111111111111111111111111
10111111111111111111111111111111
1111111111111111111111111111111
Are you sure you aren't mistaking the fact that println doesn't print leading 0's for the number being nothing but 1's? Try printing as hex., then all the numbers will be the same width:
FFFFFFFF
BFFFFFFF
7FFFFFFF