物理单位长度大于一个字节的时候需要用到字节顺序,常见的有2种:Big-Endian和Little-Endian。

示例:存储0x1234ABCD到内存2000H开始的四个字节中
Big-Endian存储,从2000H开始,依次为ABH CDH 12H 34H;
Little-Endian存储,从2000H开始,依次为CDH ABH 34H 12H;

Big-Endian大端存储:数据的高位字节存放在内存的低地址端,数据的低位字节存放在内存的高地址端。采用这种机制的处理器有IBM3700系列、PDP-10系列、Mortolora位处理器和绝大多数的RISC处理器。

Little-Endian小端存储:数据的低位字节存放在内存的低地址端,数据的高位字节存放在内存的高地址端。采用这种机制的处理器有PDP-11、VAX、Intel系列位处理器和一些网络通信设备。

区别大端和小端

有两种方法:使用宏和使用函数。

1.使用宏

const int endian = 1;
#define is_bigendian()  ((*(char*)&endian) == 0)
#define is_little_endian()  ((*(char*)&endian) == 1)

2. 使用函数

bool isLittleEndian()
{union {long val;char szChar[sizeof(long)];}u;u.val = 1;if(u.szChar[0] == 1)return true;else if(u.szChar[sizeof(long)-1] == 1)return false;throw("Unknown");
}

字节顺序-大端/小端、big-endian/little-endian相关推荐

  1. java 大端字节序_理解字节序 大端字节序和小端字节序

    以下内容参考了 http://www.ruanyifeng.com/blog/2016/11/byte-order.html https://blog.csdn.net/yishengzhiai005 ...

  2. 如何确定CPU是大端字节序还是小端字节序?

    大端字节序:高字节存放在低地址,低字节存放在高低址 小端字节序:低字节存放在高低址,高字节存放在低地址 大小端字节顺序它是CPU的属性,所哟不同的CPU的大小端字节顺序也不同,移植的时候需要先判断当前 ...

  3. 【转】理解字节序 大端字节序和小端字节序

    转自:https://www.cnblogs.com/gremount/p/8830707.html 以下内容参考了 http://www.ruanyifeng.com/blog/2016/11/by ...

  4. 大端字节序与小端字节序 (网络字节序与主机字节序)

    大端字节序与小端字节序 1. 简介 2. 判断机器字节序(C/C++) 3. 主机字节序与网络字节序的转换 4. IP地址与网络字节序的转换 1. 简介 字节序分为大端字节序(big endian)和 ...

  5. 大端字节序与小端字节序的转换

    逐步加深对字节操作的理解,记录一下大端字节序与小端字节序的转换,开发环境是vs2010,项目类型是控制台输出程序,下面是代码实现: // ByteOrder_demo.cpp : 定义控制台应用程序的 ...

  6. 大端字节序和小端字节序

    大端字节序和小端字节序 1.什么是大小端字节序 2.验证大小端字节序 1.什么是大小端字节序 计算机硬件有两种储存数据的方式:大端字节序(MSB)和 小端字节序(LSB). 小端字节序(LSB) 将这 ...

  7. socket 大端 小端 转换 (转)《二》

    http://blog.csdn.net/kukumouse/article/details/2270356 (1)对于位域结构中的变量来说,其长度不能跨越字节,也就是说不能超过8位.当然如果设置空白 ...

  8. 字符编码方式及大端小端

    参考资料: http://www.cnblogs.com/zhouyuqin/p/4688459.html http://pcedu.pconline.com.cn/empolder/gj/other ...

  9. 认识(大端--小端)端模式

    端模式(Endian)的这个词出自Jonathan Swift书写的<格列佛游记>.这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian,从 ...

最新文章

  1. jsf mysql_如何在Spring JSF MySQL应用程序中正确显示阿拉伯文?
  2. jQuery的AJAX
  3. 如何在Windows环境下的VS中安装使用Google Protobuf完成SOCKET通信
  4. 503小组第三章编程作业
  5. 编译原理--运行时存储组织(自己看)
  6. Spark 计算人员二度关系
  7. python爬虫模拟登录之图片验证码
  8. Early stopping conditioned on metric `val_loss` which is not available. Available metrics are: loss,
  9. windows 10如何设置局域网共享文件夹,详细教程
  10. docker 安装redmine
  11. 浅谈计算机应用的认识,浅谈《计算机应用基础》教学
  12. 后端工程师-软件类OPPO-2023届校园招聘笔试题-后端(A卷)
  13. Contest 2050 and Codeforces Round #718 B. Morning Jogging
  14. 计算机测绘程序设计实验报告,测绘程序设计(VS2008)实验报告--文件操作.docx
  15. 最担心的还是发生了,程序员失业来得太突然!
  16. 游戏突然卡顿, NVIDIA提示 显示设置不可用
  17. hibernate char 字段的数据表只查出一个字符
  18. 飞行射击类游戏,Helloworldgame
  19. Debeaver导入csv文件后处理乱码与数字型转varchar丢失精度问题
  20. OSG之节点写入文件(.ive)

热门文章

  1. 某大学ipv6和ipv4结合的校园网规划设计
  2. Visa领导女性赋权新的十年
  3. 黑色星期五是不是计算机病毒,黑色星期五是计算机病毒么?
  4. OKGoogle开关置灰和无法唤醒问题
  5. 25、驾考题库API接口,免费好用
  6. 蓝桥杯 stm32 DAC
  7. 从0到1搭建一个Spring Boot项目【第一个接口】
  8. JS简写技巧(来自于微信公众号-前端之巅)
  9. c语言Dvv实验报告,电渗实验报告
  10. 最大似然估计(MLE)与最小二乘估计(LSE)的区别