美文网首页
详解大小端

详解大小端

作者: 哇察 | 来源:发表于2017-09-03 13:28 被阅读0次

一.为什么有大小端

因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。而例如在C语言中short占2个字节,那大小端则决定了这两个字节在系统中存放的顺序。

二.什么是大小端

1)小端(little-endian)就是高字节放在内存的高地址端

2)大端(big-endian)就是高字节放在内存的低地址

例如数字0x1234,这里0x12占的字节是高字节,在小端模式中它放在内存的高地址,如下:

低地址------>高地址

        0x34 | 0x12

而在大端模式中,则如下:

低地址------>高地址

       0x12 | 0x34

总的来说如果一张纸代表内存,纸的左上角是最小地址,我们平时写字的习惯就是大端模式,即把高字节写在低地址。

三.注意

数组不会存在大小端问题,大小端决定的是字节数大于等于2的类型的字节存放顺序。故下列代码此时的输出一定B,和大小端无关。:

char str[] ="AB";

char*  pStr = str;

pStr++;

print("%c",*pStr);

而字节则不一样,如下只有在大端的计算机上才显示“big”:

unsigned int num = 0x12345678;

char str = *(char*)#

if (str == 0x78) {

cout << "big" << endl;

}

相关文章

  • 详解大小端

    一.为什么有大小端 因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。而...

  • 字节对齐与大端小端与内存区域划分

    字节对齐 C语言字节对齐C语言字节对齐/7213465 大端小端 字节序(大小端)详解从高低地址和高低位开始理解(...

  • 大小端

    大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数...

  • 大小端

    我还是弄不清,记不住到底哪个大,哪个小,所以我暂时先不管了 bool IsLittleEndian() { i...

  • 大小端

    大小端是指大于一个字节的变量在内存中的存储顺序,在内存中,通常来说,是以字节为单位存储数据的,以c++为例,一个c...

  • IT(大小端)

    计算机内存由低地址向高地址分配 小端(低尾端):低序字节放在低地址:数:1234 -> 内存:4321 大端(高尾...

  • 大小端

    Java与平台无关默认是大端,网络上传输数据普遍采用大端C语言默认是小端数据在计算机中存储的大小端两种,以十进制数...

  • 大小端

    小端 特征:数据的低字节保存在内存低地址,高字节保存在内存高地址。注意:数据类型 char 和 unsigned ...

  • 大小端

    void test() { char a,b,c,d; int x=0x30313233; cout << *((...

  • 大小端

    大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中。小端模式,是指数据的高字节保存...

网友评论

      本文标题:详解大小端

      本文链接:https://www.haomeiwen.com/subject/astjjxtx.html