简体   繁体   中英

binary integer to integer array in c

I have an variable unsigned int x = 0b0011 how can I make it to unsigned integer array, like y[0]=0 ; y[1]=0; y[2]=1; y[3]=1; y[0]=0 ; y[1]=0; y[2]=1; y[3]=1; ?

Shifting and bitwise operations.

unsigned x = 0b0011; // yap this is a GNU extension, it doesn't always work even with GCC

const size_t intsize = sizeof(x) * CHAR_BIT; // go go indepency-of-sizeof(int)!

unsigned bits[intsize]; // that's why we love constexprs

int i, j;
for (i = intsize - 1, j = 0; i >= 0; i--, j++) { // and the comma operator too
    bits[j] = (x >> i) & 0x1;
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM