Beste Tweakers,
Op het moment zit ik met een kleine probleem. Ik heb in C# een werkend programma, voor de PRNG waarmee ik wil gaan werken.
De bedoeling was om het te gebruiken om een Windows-based server, maar vanwege financiële redenen word er nu gebruikt gemaakt van een Linux-based NAS (server). Dus vandaar dat ik eerst het programma in C# heb geschreven en nu graag in PHP wil hebben.
De waarde waarmee ik moet werken / die ik verwacht, is een 32-bit hexadecimale getal.
Hieronder de code, dat ik geschreven heb in C# (trouwens niet volledige code)
Door de functie NextNum() aan te roepen word de variabel m_seed gevuld met een 32 bits integer (word weliswaar ge-returned als een decimaal getal, maar zet het zelf om in hexadecimaal, van 0x00000000 tot 0xFFFFFFFF). Door de UInt32 word de waarde terug gebracht / getrimt naar 32 bits, het is dus een D-Word. Alleen doet PHP dat niet en geeft gewoon een Q-Word terug (64 bits?), waardoor er niets meer klopt.
Ik ben zelf ten einde raad, want zou niet weten hoe ik hierop moet zoeken en hoe ik het zelf zou moeten oplossen..
Zat te denken aan substr($string, -8); maar lijkt mij niet echt de juiste manier..
Alvast bedankt!
Op het moment zit ik met een kleine probleem. Ik heb in C# een werkend programma, voor de PRNG waarmee ik wil gaan werken.
De bedoeling was om het te gebruiken om een Windows-based server, maar vanwege financiële redenen word er nu gebruikt gemaakt van een Linux-based NAS (server). Dus vandaar dat ik eerst het programma in C# heb geschreven en nu graag in PHP wil hebben.
De waarde waarmee ik moet werken / die ik verwacht, is een 32-bit hexadecimale getal.
Hieronder de code, dat ik geschreven heb in C# (trouwens niet volledige code)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| private UInt32 m_seed;
public UInt32 Next()
{
return (0x41c64e6d * m_seed) + 0x6073;
}
public UInt32 NextNum()
{
m_seed = Next();
return m_seed;
}
m_seed = 0xFF82
NextNum(); |
Door de functie NextNum() aan te roepen word de variabel m_seed gevuld met een 32 bits integer (word weliswaar ge-returned als een decimaal getal, maar zet het zelf om in hexadecimaal, van 0x00000000 tot 0xFFFFFFFF). Door de UInt32 word de waarde terug gebracht / getrimt naar 32 bits, het is dus een D-Word. Alleen doet PHP dat niet en geeft gewoon een Q-Word terug (64 bits?), waardoor er niets meer klopt.
Ik ben zelf ten einde raad, want zou niet weten hoe ik hierop moet zoeken en hoe ik het zelf zou moeten oplossen..
Zat te denken aan substr($string, -8); maar lijkt mij niet echt de juiste manier..
Alvast bedankt!
