- 论坛徽章:
- 0
|
https://sirch.svn.sourceforge.ne ... trunk/test/catbit.c
still not in a general way
- #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;
- }
复制代码 |
|