Einzelnen Beitrag anzeigen

Dax
(Gast)

n/a Beiträge
 
#4

Re: irreversible Funktion?!

  Alt 19. Mai 2008, 20:58
Dein Ergebnis ist ein 32bit-Wert. <<(8n) schiebt einen Wert um n Byte nach links. Was du da tun würdest, wäre einen Integer aus 4 Byte zusammenzusetzen.

i << 24 + i2 << 16 + i3 << 8 + i4 = Ergebnis

i = Ergebnis >> 24
i2 = (Ergebnis >> 16) && 255
i3 = (Ergebnis >> 8) && 255
i4 = Ergebnis && 255

Wenn aber ein i{n} nicht mehr in ein Byte passt, wrapt der Wert dank des + auf das nächste Byte: die Funktion ist nicht mehr umkehrbar.

Beispiel: i = 0, i2 = 0, i3 = 1, i4 = 0 -> Ergebnis = 256
Das selbe nochmal: i = 0, i2 = 0, i3 = 0, i4 = 256 -> Ergebnis 256

Derjenige, der das Ergebnis hat, kann ohne weiteres Wissen nicht zuverlässig sagen, was du gemeint hast - wenn er aber weiss, dass i{n} Bytes sind, kann er das.
  Mit Zitat antworten Zitat