#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define TEST_N_ARRAY 3
#define TEST_N_BITS 11
static long long
test_array[TEST_N_ARRAY] =
{
0x0000011100011010,
0x0000010110100011,
0x0000011011000111
};
static unsigned char *test_data = NULL;
static void catbit(long long *array, unsigned int n_array, unsigned int n_bits);
static void
catbit(long long *array, unsigned int n_array, unsigned int n_bits)
{
int i;
unsigned int data_head;
unsigned int data_body;
unsigned int data_tail;
char tmp[n_bits];
for (i = 0; i < n_array; i++)
{
data_head = (array[i] >> 0x20) & 0xffff;
data_body = (array[i] >> 0x10) & 0xffff;
data_tail = array[i] & 0xffff;
sprintf(tmp, "%03X%04X%04X", data_head, data_body, data_tail);
//printf("DEBUG at %d: %s\n", __LINE__, tmp);
strcat(test_data, tmp);
}
}
int
main()
{
if (test_data = (unsigned char *) malloc(TEST_N_BITS * TEST_N_ARRAY))
{
catbit(test_array, TEST_N_ARRAY, TEST_N_BITS);
}
else
{
printf("out of memory\n");
return -1;
}
printf("%s\n", test_data);
if (test_data)
{
free(test_data);
test_data = NULL;
}
return 0;
}