为简化代码,这里原数据选择用rand函数自动生成。解决思路是无论说是什么进制,内存中都是二进制存储的,设法把它原样打出来即可——
#include "stdio.h"
#include
#include "time.h"
#define N 24
void showbinary(int *p,int n){//二进制输出函数
int i,j,k;
char *q;
for(i=0;i
for(q=(char *)p+3,j=0;j<4;j++,q--)
for(k=0x80;k;k>>=1)
putchar(!!(*q&k)+'0');
putchar(i&1 ? '\n' : ' ');
}
}
int main(int argc,char *argv[]){
int a[N],i;
srand((unsigned)time(NULL));
puts("The original data:");
for(i=0;i
printf((i+1)%6 ? "%9X" : "%9X\n",a[i]=rand()*65536+rand());
if((i)%6)
putchar('\n');
puts("\nBinary output:");
showbinary(a,N);
return 0;
}