Login | Register   
RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: C++
Expertise: Intermediate
Jan 20, 1999

Detecting Your Machine's Endian

The term endian refers to the way a computer architecture stores the bytes of a multi-byte number in memory. If bytes at lower addresses have lower significance (Intel microprocessors, for instance), this is called little endian ordering. Conversely, big endian ordering describes a computer architecture in which the most significant byte has the lowest memory address. The following portable program detects the endian of the machine on which it is executed:
  void main() 
    union probe{ 
      unsigned int num;
      unsigned char bytes[sizeof(unsigned int)];

    probe p = { 1U }; //initialize first member of p with unsigned 1
    bool little_endian = (p.bytes[0] == 1U); //in a big endian architecture, p.bytes[0] equals 0  
Danny Kalev
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date