
void *memcpy(void *dest, const void *src, size_t n);
编辑本段功能
从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中
memcpy(b,a,16);
也可以定义另外一个char *pb=(char *) &b[0];
将b转换为char *数组,然后你想对pb一个个赋值都可以的
写了一段 你看是否合用
附图:计算结果
前4行结果是计算EFGH的结果示例,即程序原理
main()
{
int i;
unsigned char a[16]="ABCDEFGHIJKLMNO";
typedef unsigned long INT32U;
INT32U A[4],b[4];
/*计算示例段*/
A[0]=0x696A6B6C;
A[1]=0x69*0x1000000+0x6A*0x10000+0x100*0x6B+0x6C;
A[2]=(long)105*0x1000000+(long)106*0x10000+(long)107*0x100+(long)108;
printf("Example:%lx ",A[0]);
printf("%li %li %li ",A[0],A[1],A[2]);
/*计算示例段*/
for(i=0;i<=3;i++){
b[i]=(long)a[0+i*4]*0x1000000+(long)a[1+i*4]*0x10000+(long)a[2+i*4]*0x100+(long)a[3+i*4];
printf("b[%i]=%li ",i,b[i]);}
A[1]=0x65*0x1000000+0x66*0x10000+0x100*0x67+0x68;
printf("%li ",A[1]);
getch();
}
计算结果