Hirdetés

Új hozzászólás Aktív témák

  • joysefke

    veterán

    LOGOUT blog

    válasz DrojDtroll #9334 üzenetére

    Igen, én is észrevettem, de szvsz nem a forrásadatokkal van a probléma, hanem a két metódusod nem ugyanazt a bytesorrendet használja, tehát a tömbök tartalma amelyeket visszaadnak sem ugyanaz lesz.

    Amikor a második metódusban streamből beolvasol egy ulongot, akkor a ReadUInt64() figyelembe veszi az x86 bytesorrendjét: a változónak a kisebb helyiértékű byteja van alacsonyabb címen (little endian). Ha a streamed sorrendben ezeket a byteoket tartalmazza:
    1, 0x01; 2, 0x02; 3; 0x03; 4, 0x04; 5; 0x05; 6, 0x06; 7, 0x07;8, 0x08;

    akkor a kiolvasott ulong értéke az 0x08'07'06'05'04'03'02'01 lesz, szemben azzal a sorrenddel amit a fileban látsz.

    Ha ezt a részt fordított sorrendbe raknád, akkor pont ugyanazt a tömböt adná vissza a kettő metódusod.

                            result[++j, i] = (ushort)(r >> 48);
                            result[++j, i] = (ushort)(r >> 32);
                            result[++j, i] = (ushort)(r >> 16);
                            result[++j, i] = (ushort)r;

    [ Szerkesztve ]

Új hozzászólás Aktív témák