我在小端看到,LSB处于起始地址,在Big endian中,MSB处于起始地址.所以我写了这样的代码.如果不是为什么?
void checkEndianess()
{
int i = 1;
char c = (char)i;
if(c)
cout<<"Little Endian"<<endl;
else
cout<<"Big Endian"<<endl;
}
Run Code Online (Sandbox Code Playgroud)
Ebo*_*ike 11
不,您正在使用int并将其转换为char,这是一个高级概念(内部最有可能在寄存器中完成).这与字节序无关,字节序主要与记忆有关.
你可能正在寻找这个:
int i = 1;
char c = *(char *) &i;
if (c) {
cout << "Little endian" << endl;
} else {
cout << "Big endian" << endl;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
337 次 |
| 最近记录: |