Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
9 years, 12 months ago. This question has been closed. Reason: Unclear question
Why is my variable never populated?
Hi All,
Im having a bit of trouble storing a bit setting.
My (sample) code:
#include "mbed.h" Serial pc(USBTX, USBRX); // tx, rx int main() { pc.baud(19200); uint64_t i,x = 0; uint64_t hex1 = 255721421627155024; uint8_t bits[64]; // delete this line when you try to reproduce, its only here for reference what I was doing. pc.printf("hex1 = %s\n\n", i642b(buffer, hex1)); for (i = ((uint64_t)1 << 63); i > 0; i >>= 1) { bits[x] = (((uint64_t)(hex1 & i) == i) ? 0x01:0x00); pc.printf("bits[%d] = %d == %d\n", x, bits[x], (((uint64_t)(hex1 & i) == i) ? 0x01:0x00)); x++; } }
I would have expected this output:
hex1 = 00 00 00 11 10 00 11 00 10 00 00 01 01 00 01 11 00 11 00 01 10 00 10 11 01 10 00 10 01 01 00 00 bits[0] = 0 == 0 bits[1] = 0 == 0 bits[2] = 0 == 0 bits[3] = 0 == 0 bits[4] = 0 == 0 bits[5] = 0 == 0 bits[6] = 1 == 1 bits[7] = 1 == 1 bits[8] = 1 == 1 bits[9] = 0 == 0 ..........
But instead I get this:
hex1 = 00 00 00 11 10 00 11 00 10 00 00 01 01 00 01 11 00 11 00 01 10 00 10 11 01 10 00 10 01 01 00 00 bits[0] = 0 == 0 bits[1] = 0 == 0 bits[2] = 0 == 0 bits[3] = 0 == 0 bits[4] = 0 == 0 bits[5] = 0 == 0 bits[6] = 0 == 1 bits[7] = 0 == 1 bits[8] = 0 == 1 bits[9] = 0 == 0 ..........
So it looks like bits[] is never being populated. Does somebody knows why this is? I'm not seeing it....
Thanks in advance,
Found the problem...
Apparently it didn't like the: uint64_t x = 0;
and next use that uint64_t as key inside a array.
posted by Henry Pauli 29 Nov 2014