devxlogo

Changing the Endian-ness of a Number

Changing the Endian-ness of a Number

Suppose you receive an int from a remote host and you wish to convert it to big-endian order. Here is another portable solution for handling of big and littleendian data formatting. This solution is based on the use of the right shift operator:

 // big endianint to_big_endian(int d){ unsigned char buffer[sizeof (int)]; buffer [0] = (char) d >> 24; buffer [1] = (char) d >> 16; buffer [2] = (char) d >> 8; buffer [3] = (char) d; return * (int*)buffer;}

To convert an int to little endian byte ordering, use the following function:

 // little endian int to_little_endian(int d){ buffer [0] = (char) d; buffer [1] = (char) d >> 8; buffer [2] = (char) d >> 16; buffer [3] = (char) d >> 24; return * (int*)buffer;}

These functions may not generate the fastest code, but they are portable.Tip #684Intermediate Reading Strings that Contain WhitespacesThe std::getline() functions reads data from an input stream and writes it to a string object. Unlike cin’s >> operator, getline() also reads whitespaces, which makes it useful for reading strings that contain blanks. For example:

 #include #include int main(){ std::string name; cout

getline() has three parameters, the third of which is a delimiter serving as a string terminator. By default, the delimiter's value is '
'. You can override this value and define a different delimiter. For example, you can define the sign ' ' (tab) as the delimiter:

 std::getline(cin, name, '	');
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist