c语言中关于unsigned char和typedef定义类型的问题可以用这个函数void*memcpy(void*dest,c

可以用这个函数

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\n",A[0]);

printf("%li\n%li\n%li\n\n",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\n",i,b[i]);}

A[1]=0x65*0x1000000+0x66*0x10000+0x100*0x67+0x68;

printf("%li\n",A[1]);

getch();

}


计算结果



最新更新