C :: Aufgabe #47
2 Lösungen

Edianess (Byte-Reihenfolge)
Anfänger - C
von devnull
- 07.04.2014 um 10:35 Uhr
Schreibe ein Programm, dass die Endianess (Byte-Reihenfolge im Speicher für Zahlenwerte) der Hardware ermittelt.
Das Ergebnis soll in Textform ("Little-Endian" oder "Big-Endian") ausgegeben werden.
Das Ergebnis soll in Textform ("Little-Endian" oder "Big-Endian") ausgegeben werden.
Lösungen:

/******************************************** * endian.c Byte-Reihenfolge ermitteln * devnull 09-04-2014 ********************************************/ #include <stdio.h> int main() { int num = 1; char *pc = (char *) # printf("%s-Endian\n", (*pc)?"Little":"Big"); return 0; }

#include<stdio.h> #include<stdint.h> /* * Idea behind this: * Formatting a number to hexadecimal, * because on a Little-Endian it would be "01 00" * and on a Big-Endian it would be "00 01" */ int main(void) { uint16_t num = (uint16_t) 1; char cha = *((char*)&num); printf("%s-Endian.\n", cha?"Little":"Big"); return 0; }