Leser: 1
|< 1 2 >| | 16 Einträge, 2 Seiten |
QuoteThis is perl, v5.8.0 built for i686-linux
QuotePHP 4.3.3 (cli) (built: Oct 25 2003 15:06:16)
Copyright © 1997-2003 The PHP Group
Zend Engine v1.3.0, Copyright © 1998-2003 Zend Technologies
echo $((4653896912 >> 13))
QuoteAuf Computern gibt es mehrere Möglichkeiten, wie Zahlenwerte, die aus mehreren Bytes bestehen, im Speicher abgelegt sind. Die beiden wichtigsten sind big endian und little endian.
Nehmen wir im Folgenden als Beispiel den 32-Bit Integer-Wert mit der hexadezimalen Darstellung 0xA1B2C3D4.
Wenn wir die 4 Bytes in der Reihenfolge D4 C3 B2 A1, also das niederwertigste Byte an der niedrigsten Speicheradresse ablegen, spricht man von little endian. Eingeführt wurde diese Byte-Reihenfolge beispielsweise mit dem 6502 oder den Intel x86 Prozessoren.
Die Speicherung in der Reihenfolge A1 B2 C3 D4, also das höchstwertige Byte an der niedrigsten Speicheradresse wird als big endian bezeichnet. Verwendet wird diese Byte-Reihenfolge beispielsweise bei der Motorola 68000er Familie, dem PowerPC oder den Prozessoren der z/Series. Auch die gewöhnliche Darstellung von Zahlen ist damit - im Sinne der Leserichtung von links nach rechts - big endian, wenn man so will.
Einige - meist ältere - Systeme speicherten die Daten in der Reihenfolge C3 D4 A1 B2 oder B2 A1 D4 C3, dies wird jeweils als middle endian bezeichnet.
Um einen fehlerfreien Datenaustausch im Internet zu ermöglichen, ist bei Netzwerkprotokollen normalerweise immer die Byte-Reihenfolge festgeschrieben als network byte order, die im Falle von TCP/IP im big endian Format definiert ist. Arbeitet das System nicht mit dieser Byte-Reihenfolge, muss dies im Netzwerktreiber entsprechend umgesetzt werden.
Die kuriose Bezeichnung lehnt an den satirischen Roman "Gullivers Reisen" von Jonathan Swift an, in dem der Streit darüber, ob ein Ei am spitzen oder am dicken Ende aufzuschlagen sei, die Bewohner von Liliput in zwei verfeindete Lager spaltet - die "Little-Endians" und die "Big-Endians", in der deutschen Übersetzung des Buches "Dickender" und "Spitzender".
perl -MMath::BigInt -e'$x = Math::BigInt->new("4653896912");$x->brsft("13");print $x->bstr;'
|< 1 2 >| | 16 Einträge, 2 Seiten |