Чтобы не сказать, что у вас есть ввод, как
int DATA[8] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};
Если вы хотите вывод, подобный 0x0001020304050607
, для хранения этого результирующего вывода вам нужна одна переменная типа unsigned long long
. Например,
int main(void) {
int DATA[8] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};
int ele = sizeof(DATA)/sizeof(DATA[0]);
unsigned long long mask = 0x00;
for(int row = 0; row < ele; row++) {
mask = mask << 8;/* every time left shifted by 8(0x01-> 0000 0001) times */
mask = DATA[row] | mask; /* put at correct location */
}
printf("%016llx\n",mask);
return 0;
}