Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
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.

 

 

Sitemap