Big Endian versus Little Endian

Nagilo

Mitglied
Hallo,

kann mir jemand sagen, wie ich einen kurzen Programmcode zu schreiben habe, wenn ich herausfinden soll, ob ich mich auf einen Little Endian oder Big Endian System befinde?
Oder weiß jemand wo es Beispiele gibt?

In C# oder C++ bitte.

Danke
 
Hm... nur eine Idee...
Code:
#include <stdio.h>

int main(void)
{
	unsigned short int iVar, *piVar;
	unsigned char *pcVar;
	
	piVar = &iVar;
	pcVar = (unsigned char *)&iVar;

	iVar = 0xff00;

	if (*pcVar == 0xff) {
		printf("Big Endian");
	} else {
		printf("Little Endian");
	}
}
Hoffe jetzt mal dass ich Big und Little Endian nicht vertauscht hab ;) Aber die Idee sollte rüberkommen...
 
Danke für die Ideen. Das letztere Beispiel hat so nicht geklappt. Es kam immer die else-Klausel. Egal wie ich es anders getestet hatte.
Auf jeden Fall hat mir der Gedanke aber weitergeholfen.

Bei mir sieht es in C# jetzt so aus:

using System;
using System.Text;

class StringEncodingApp
{
static void Main(string[] args)
{

// in Unicode BIG Endian ist es dann 0,50;
// in LITTLE Endian 50,0;
string test = "2";
UnicodeEncoding UE = new UnicodeEncoding();
byte[] key = UE.GetBytes(test);

// auf einer BIG Endian Maschine sollte
// key[0] dann 0 sein und key[1] = 50;
if (key[0] == 50)
Console.WriteLine("Little Endian");
else if (key[1] == 50)
Console.WriteLine("Big Endian");
else
Console.WriteLine("Error");
}
}
 
Zurück