8 つの位置を持つ char の配列 (char data[8];) を取得しました。この配列には unsigned long long int 値 (8 バイトのサイズ) があります... data[0] には long long の最初のバイトがあります。 int、data[1] には 2 番目などがあります。私の質問は、その値を unsigned long long 変数に戻す方法ですか?
シフトを試みましたが、値が元の値と等しくありませんでした。元の配列を変更せずにこれを行うにはどうすればよいですか...
バイトの順序は、変数の通常の順序 (上位ビットから下位ビットへ) のリトル エンディアンです。
予想とは異なる値を出力するコードを次に示します。
char vec[8]={0,0,0,0,0,0,0,1};
unsigned long long value = *((unsigned long long*) vec);
std::cout<<value;
return 0;
結果は 1 になるはずですが、代わりに 72057594037927936 になります。