d********t 发帖数: 9628 | |
r****t 发帖数: 10904 | 2 比如写个 function 判断机器属于哪个 endian? |
d********t 发帖数: 9628 | 3 怎么个思路说来听听?
【在 r****t 的大作中提到】 : 比如写个 function 判断机器属于哪个 endian?
|
B*******1 发帖数: 2454 | 4 EE embedded的最熟这个。
【在 d********t 的大作中提到】 : 谢谢
|
n*******w 发帖数: 687 | 5 A big-endian machine stores the most significant byte first, and a little-
endian machine stores the least significant byte first.
from,http://en.wikipedia.org/wiki/Endianness
可能的考题。问数据怎么存储啊,怎么知道一台机器是big还是little。
careercup 150题上给了一个解法。一个short int指针,指向的内容为1。
强制转为char指针。看char[0]是0还是1。
0是big,1是little。 |
r****t 发帖数: 10904 | 6 nooneknow 刚刚贴了。
【在 d********t 的大作中提到】 : 怎么个思路说来听听?
|
f*******t 发帖数: 7549 | 7 bool isBigEndian() {
short temp = 1;
return (((char*)&temp)[0] ^ 1);
} |
d********t 发帖数: 9628 | 8 Thanks!
【在 n*******w 的大作中提到】 : A big-endian machine stores the most significant byte first, and a little- : endian machine stores the least significant byte first. : from,http://en.wikipedia.org/wiki/Endianness : 可能的考题。问数据怎么存储啊,怎么知道一台机器是big还是little。 : careercup 150题上给了一个解法。一个short int指针,指向的内容为1。 : 强制转为char指针。看char[0]是0还是1。 : 0是big,1是little。
|
d********t 发帖数: 9628 | 9 为啥要XOR 1?
【在 f*******t 的大作中提到】 : bool isBigEndian() { : short temp = 1; : return (((char*)&temp)[0] ^ 1); : }
|
f*******t 发帖数: 7549 | 10 貌似0是bigendian,1是littleendian,所以用异或
【在 d********t 的大作中提到】 : 为啥要XOR 1?
|
B*******1 发帖数: 2454 | 11 bool isLittleEndian() {
unsigned int temp = 1;
return *(char *)&temp;
}
【在 f*******t 的大作中提到】 : bool isBigEndian() { : short temp = 1; : return (((char*)&temp)[0] ^ 1); : }
|