interested in web3
Share Dialog
Share Dialog
interested in web3

众所周知,正负号存在数字中的高位,所以大端第一个字节存的就是最高的数字字节,对于判断正负来说,大端更适合,同时,网络字节序采用的是大端存储;而对于小端来说,无论是1个字节、2个字节、4个字节,这些数字其实都是一样的,这在做类型转换时十分方便,同时,做算术运算时将每个字节拿出来运算直到高位,并且最终刷新符号位,这样运算会更加高效
void testendian() {
int a = 0x12345678;
// 1. 直接指针
char* p = (char*)&a;
if (*p == 0x78)
cout << "little endian" << endl;
else
cout << "big endian" << endl;
// 用一下联合体
union Un {
char c;
int i;
};
Un un;
un.i = 0x12345678;
if (un.c == 0x78)
cout << "little endian" << endl;
else
cout << "big endian" << endl;
}

众所周知,正负号存在数字中的高位,所以大端第一个字节存的就是最高的数字字节,对于判断正负来说,大端更适合,同时,网络字节序采用的是大端存储;而对于小端来说,无论是1个字节、2个字节、4个字节,这些数字其实都是一样的,这在做类型转换时十分方便,同时,做算术运算时将每个字节拿出来运算直到高位,并且最终刷新符号位,这样运算会更加高效
void testendian() {
int a = 0x12345678;
// 1. 直接指针
char* p = (char*)&a;
if (*p == 0x78)
cout << "little endian" << endl;
else
cout << "big endian" << endl;
// 用一下联合体
union Un {
char c;
int i;
};
Un un;
un.i = 0x12345678;
if (un.c == 0x78)
cout << "little endian" << endl;
else
cout << "big endian" << endl;
}

Subscribe to itherunder

Subscribe to itherunder
<100 subscribers
<100 subscribers
No activity yet