私は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