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;
}
