我是 C++ 新手。我需要帮助将长整数值存储在 LSB 大小为 128 位的 unsigned char 数组中。例如:
long int myLong = 12340;
unsigned char myArray[16] = {};
memcpy(myArray,&myLong,sizeof(long int));
将其复制到 的 MSB 处myArray
,即
0x34300000000000000000000000000000
但我需要myLong
存储myArray
为:
0x00000000000000000000000000003430
注意:我正在使用 64 位小端(LSB)机器。而且我必须将相应的字节向右移动。有没有办法实现这个目标或任何现有的功能来完成这项工作?
编辑:myLong = 12340
我的错,我否决了&myLong = 0x12340
输出之间的区别。我相应地修改了问题&是的,如果使用myLong = 0x12340
& memcpy
,myArray
看起来像:
0x40230100000000000000000000000000