//分离出一个int数据类型中的每个字节 (get every byte of a int type)
#include <stdio.h>
#include <stdlib.h>
int
main(int argc,char** argv)
{
if (sizeof (int) != 4) {
fprintf(stderr,"Unkown type!\n");
return 1;
}
int x = 0x0F123FFC;
unsigned int mask = 0xFF000000;
int array[sizeof(int) + 1] = {0};
int steps = 8;
int counter;
for (counter = 1; counter <= 4 ; counter++) {
// printf("%008x------\n",mask);
//printf("%008x\n********",(x & mask));
array[counter] = ((x & mask) >> (32-steps*counter)); //提取每个字节并去除多余的0 (get every byte and remove 0)
//printf("%008x\n",(x & mask) >> (32-steps*counter) );
mask >>= steps; //掩码右移8位 (mask right shift 8 bits)
}
for (counter = 1; counter <= 4 ; counter++) {
printf("byte[%d]: %002x\n",counter,array[counter]);
}
return 0;
}
更多资源
Crusher-Int