как получить тоже значение с кода с++ на php
Есть код где nSeedKey равен 1852115210 это же значение нужно сделать в php
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char pDstData[26] = {
0x0A, 0x09, 0x65, 0x6E, 0x64, 0x0D, 0x0A, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x66,
0x61, 0x6C, 0x73, 0x65, 0x0D, 0x0A, 0x0D, 0x0A, 0x65, 0x6E
};
unsigned long nSeedKey = 0;
memcpy(&nSeedKey, pDstData, 4);
// nSeedKey = 1852115210
unsigned long nSeedCnt = nSeedKey%50;
//nSeedCnt = 10
cout << "nSeedKey:"<< nSeedKey << " - " << "Seed:"<< nSeedCnt;
return 0;
}
вот это все что я смог накатать на php
$pDstData = [
0x0A, 0x09, 0x65, 0x6E, 0x64, 0x0D, 0x0A, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x66,
0x61, 0x6C, 0x73, 0x65, 0x0D, 0x0A, 0x0D, 0x0A, 0x65, 0x6E
];
$nSeedKey = 0;
//??????
//memcpy(&nSeedKey, pDstData, 4);
$SeedCnt = $nSeedKey%50;
echo $SeedCnt ." - ". $nSeedKey;
все не как не могу сообразить как сделать чтобы значение было тоже самое что и в c++
заранее спасибо.
Ответы (1 шт):
Автор решения: user7860670
→ Ссылка
Для распаковки бинарных данных существует функция unpack. 4-х байтовый unsigned long читается форматом V:
$pDstData = "\x0A\x09\x65\x6E\x64\x0D\x0A\x09\x72\x65\x74\x75\x72\x6E\x20\x66\x61\x6C\x73\x65\x0D\x0A\x0D\x0A\x65\x6E";
$array = unpack("V", $pDstData);
$nSeedKey = $array[1];
$SeedCnt = $nSeedKey%50;
echo $SeedCnt ." - ". $nSeedKey;