博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
大小端存储模式的几个问题
阅读量:4211 次
发布时间:2019-05-26

本文共 686 字,大约阅读时间需要 2 分钟。

1. 为什么大小端能够并存至今?

答:

  • 历史惯性
  • 各有优势

大端优点:符号位在所表示的数据的内容的第一个字节中,便于快速判断数据的正负和大小。

这里写图片描述

小端优点:

  • 低地址放低字节,所以在强制转换时不需要调整字节的内容。
  • CPU做数值运算时从内存中依次从低到高取数据进行运算直到最后刷新最高位的符号位,这样运算方式会更高效。
  • 这里写图片描述

2. 发展现状

Interl x86系列芯片使用小端存储模式,

ARM的芯片默认小端,但可以切换到大端;
网络上普遍采用大端模式,使用大端的CPU: power pc 、DSP … …

大小端是由CPU架构决定的, 不是软件决定!!!

3. 为什么 网络序 是 大端序 ?

“网络协议规定接收到的第一个字节是高字节存放低地址”

或者说
TCP/IP协议规定把接收到的第一个字节当做高位看待,这就要求发送端发送的第一个字节是高字节。

4. 大小端转换(32位)

((uint32)(A)&0xff000000) >> 24|(uint32)(A)&0x00ff0000) >> 8|(uint32)(A)&0x0000ff00) << 8|(uint32)(A)&0x000000ff) << 24)

5. 判断大小端模式程序

bool IsLittle(){    int x=1;    return *(char*)&x == 1;}bool IsLittle(){    union check    {        int i;        char ch;    }c;    c.i = 1;    return (c.ch == 1);}
你可能感兴趣的文章
框架一
查看>>
Oracle-内存管理解读
查看>>
Oracle-PFILE和SPFILE解读
查看>>
leetcode 13: Roman to Integer
查看>>
a标签中调用js方法
查看>>
js函数中传入的event参数
查看>>
[hive]优化策略
查看>>
c++14现代内存管理
查看>>
右值引用,move语义和完美转发
查看>>
c++使用宏检测类是否包含某个函数或者变量属性
查看>>
CSS之Multi-columns的column-gap和column-rule
查看>>
CSS之Multi-columns的跨列
查看>>
CSS之浮动(一)
查看>>
CSS之浮动(二)
查看>>
记腾讯互娱网站布局(1)
查看>>
记腾讯互娱网站布局(2)
查看>>
记腾讯互娱网站布局(3)
查看>>
大小不固定的图片和多行文字的垂直水平居中
查看>>
display:table-cell的集中应用
查看>>
display:table-cell自适应布局下连续单词字符换行
查看>>