34 67 89 2223 44 55 775 332 345 675 4234 123 565 345 98 1213 9876 90 353 4242
34 44 55 67 89 90 98 123 332 345 353 565 675 775 1213 2223 4234 4242 9876
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#include <stdio.h>
#include <stdlib.h>
void setbit(char *p , int value)
{
int idiv=value/8;
int imod=value%8;
*(p+idiv) = *(p+idiv) | 0x1 << imod ;
}
int main ()
{
#define LENGTH 65535/8
ushort data[]={34,67,89,2223,44,55,775,332,345,675,4234,123,565,345,98,1213,9876,90,353,4242};
char p[LENGTH]="\0";
uint i,j,value;
for( i=0;i<sizeof(data)/sizeof(ushort);i++)
{
setbit(p,data[i]);
printf("%d ",data[i]);
}
printf("\n");
for( i=0;i<LENGTH;i++)
{
for( j=0;j<8;j++)
{
if ( ( *(p+i)& (0x1<<j))== 0x1<<j )
{
value=i*8+ j;
printf("%d ",value);
}
}
}
printf("\n");
}