1

これが正しいかどうかはわかりません。テストしたところ、一部のバイトがオフになっているようです...基本的に、私は次のものを持っています:

unsigned char szBuffer[1024] = {0};
long long nValue = 1334553536;
memcpy(szBuffer, (char*)&nValue, sizeof(long long));

//

long long nNewValue = reinterpret_cast<long long>(szBuffer);
printf(nNewValue); //prints out a smaller number than previously stated

私が間違っていた場所を誰か指摘していただけませんか?ありがとうございました。

4

3 に答える 3

4

そのアドレスからデータを読み取るのではなくnNewValue、 のアドレスに設定しています。szBuffer使用する:

long long nNewValue = *reinterpret_cast<long long*>(szBuffer);
于 2014-01-10T16:00:00.047 に答える
1

このステートメントを変更

long long nNewValue = reinterpret_cast<long long>(szBuffer);

long long nNewValue = *reinterpret_cast<long long *>(szBuffer);
于 2014-01-10T16:00:44.450 に答える