Ich arbeite an einem 64-Bit-Intel-Prozessor ... ich lernte über große und kleine Endian und was ich verstand war, dass dies Bytes Ordnungen innerhalb eines Wortes sind, so dass in einem 64-Bit-Daten, MSB wird hat niedrigste Adresse in big-endian-Form und die höchsten Adresse in little-endian-Form ... jetzt habe ich ein Problem:Big Endian vs Little Endian
ich schrieb this code
, um zu bestimmen, ob mein Prozessor wenig oder big-endian ...
I-Eingang
0102030405060708 (this is in hex)
und gehofft,zu bekommenund 07
und 06
und ... und 01
als Antwort
bekam aber stattdessen 0
und 25
und 50
und -125
und -13
und 501
und -41
und 66
.
wenn ich den gleichen Code unter 's' als 2 Byte (kurz) schrieb, war der Ausgang für 0102
2
und 1
(was in Übereinstimmung mit Little Endian ist) ... so was schief gelaufen hier?
Wenn Sie Ihre Frage schreiben, beachten Sie, dass es eine Vorschau dessen zeigt, wie es aussehen wird. Bitte verwenden Sie das, um sicherzustellen, dass Ihre Frage * lesbar * aussieht. Danke :) – jalf
Was erwarten Sie, um der Bit-Code eines Doppelten zu sein, das 0x0102030405060708 darstellt? – Nobody
Siehe [hier] (http://Stackoverflow.com/q/9971369/440558) für eine Frage, die eine Methode zum Finden der Endianess enthält. –