加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 此代码是否检查endianess?

发布时间:2020-12-16 10:39:59 所属栏目:百科 来源:网络整理
导读:我在小端看到,LSB处于起始地址,在Big endian中,MSB处于起始地址.所以我写了这样的代码.如果不是为什么? void checkEndianess(){int i = 1;char c = (char)i;if(c) cout"Little Endian"endl;else cout"Big Endian"endl;} 解决方法 不,您正在使用int并将其转
我在小端看到,LSB处于起始地址,在Big endian中,MSB处于起始地址.所以我写了这样的代码.如果不是为什么?

void checkEndianess()
{

int i = 1;
char c = (char)i;

if(c)
        cout<<"Little Endian"<<endl;
else
    cout<<"Big Endian"<<endl;


}

解决方法

不,您正在使用int并将其转换为char,这是一个高级概念(内部最有可能在寄存器中完成).这与字节序无关,字节序主要与记忆有关.

你可能正在寻找这个:

int i = 1;
char c = *(char *) &i;

if (c) {
   cout << "Little endian" << endl;
} else {
   cout << "Big endian" << endl;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读