Cracking the coding interview--Q16.5

February 9, 2013
作者:Hawstein
出处:http://hawstein.com/posts/16.5.html
声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转载请注明作者及出处。

题目

原文:

Write a program to find whether a machine is big endian or little endian.

译文:

写一个程序判断一台机器是大端序还是小端序。

解答

关于什么是大端序和小端序,可参见维基百科: 字节序

判断程序如下:

#define BIG_ENDIAN 0
#define LITTLE_ENDIAN 1
int TestByteOrder(){
	short int word = 0x0001;
	char *byte = (char *) &word;
	return (byte[0] ? LITTLE_ENDIAN : BIG_ENDIAN);
}

全书题解目录:

Cracking the coding interview–问题与解答

全书的C++代码托管在Github上:

https://github.com/Hawstein/cracking-the-coding-interview