ご存知のとおり、印刷可能な各文字にはASCII値があります。8文字のASCII値を64ビット整数にしようとしていますが、32ビットしかコピーされません。
char * ch = "AAAABBBB";
unsigned long int i;
//copy charater's ascii to 64 bits int
memcpy(&i, ch, 8);
printf("integer hold: 0x%x\n", i);
このコードに何か問題がありますか?
私が期待する出力は次のとおりです。
integer hold: 0x4141414142424242
しかし、出力は次のとおりです。
integer hold: 0x41414141