1、端序简介(维基百科):

端序(Endianness),又称字节序、尾序。在计算机科学领域中,端序是指存放多字节数据的字节(byte)的顺序,典型的情况是整数在内存中的存放方式和网络传输的传输顺序。Endianness有时候也可以用指位序(bit)。

对于单一的字节(a byte),大部分处理器以相同的顺序处理位元(bit),因此单字节的存放方法和传输方式一般相同。

对于多字节数据,如整数(32位机中一般占4字节),在不同的处理器的存放方式主要有两种,以内存中0x0A0B0C0D的存放方式为例,分别有以下几种方式:

1)大端序(英:big-endian)或称大尾序。

数据以8bit为单位:

地址增长方向  →

...

0x0A

0x0B

0x0C

0x0D

...

示例中,最高有效位(MSB, Most Significant Byte)是0x0A 存储在最低的内存地址处。下一个字节0x0B存在后面的地址处。正类似于十六进制字节从左到右的阅读顺序。

数据以16bit为单位:

地址增长方向  →

...

0x0A0B

0x0C0D

...

最高的16bit单元0x0A0B存储在低位。

2)小端序(英:little-endian)或称小尾序。

数据以8bit为单位:

地址增长方向  →

...

0x0D

0x0C

0x0B

0x0A

...

最低有效位(LSB,Least Significant Byte)是0x0D 存储在最低的内存地址处。后面字节依次存在后面的地址处。

数据以16bit为单位:

地址增长方向  →

...

0x0DOC

0x0BOA

...

最低的16bit单元0xOD0C存储在低位。

3)混合序(英:middle-endian)具有更复杂的顺序。

以PDP-11为例,0x0A0B0C0D被存储为:

32bit在PDP-11的存储方式

地址增长方向  →

...

0x0B

0x0A

0x0D

0x0C

...

可以看作最高的16bit位和低位以大端序存储,但16bit内部以小端存储。

2、代码实现:

测试思想主要是应用c语言的指针,以浮点数125.5为例,浮点数的在内存的存储方式可参看博文:

float型数据125.5转换为标准浮点格式:0 10000101 11110110000000000000000

则在内存中存放方式为:

1)小端

00000000   低地址

00000000

11111011

01000010   高地址

2)大端

00000000   高地址

00000000

11111011

01000010   低地址

代码如下:

#include

int main(int argc, char *argv[])

{

float a=125.5;

char *p=(char *)&a;

printf("%d ",*p);

printf("%d ",*(p+1));

printf("%d ",*(p+2));

printf("%d\n",*(p+3));

return 0;

}

如果是小端,则结果: 0 0 -5 66

如果是大端,则结果: 66 -5 0 0

另外,也可以用以下更加简便的代码测试:

int main()

{

unsigned int a=65;//A的ASCII码为65

char *p=(char *)a;

printf("%c",a);

return 0;

}

如果输出是A,则可判断为小端序。

3、处理器体系(维基百科):

java. 端序_c代码测试本机处理器的端序相关推荐

  1. java 获取上市公司基本信息 代码测试

    原理:java通过jsoup访问网站,通过html标签获取公司的基本信息 使用的jar包版本 <!-- https://mvnrepository.com/artifact/org.jsoup/ ...

  2. Java平台下使用Appium测试(真机而非模拟机)

    准备: ①下载安装Java的jdk包,资源链接及教程:https://zhuanlan.zhihu.com/p/76725836 ②下载安装 node.js; ③下载 Appium,下载安装之后桌面会 ...

  3. java使用emqtt实现即时聊天_emqttd java代码测试

    emqttd 集群在上一节我们已经配置完毕.emqttd默认占用1883端口用于MQTT连接,8083端口用于HTTP接口,通过HTTP接口从应用程序向MQTT客户端发布消息.下面我们通过java实现 ...

  4. 安装jdk配置环境、cmd命令行测试环境变量配置是否正确及运行java程序、安装IDEA编写代码测试

    文章目录 1.安装jdk配置环境 2.cmd命令行测试环境变量配置是否正确及运行java程序 3.安装IDEA编写代码测试 1.安装jdk配置环境 首先打开官网Oracle https://www.o ...

  5. 位域 内存 字节序_C语言中的位域、字节序、比特序、大小端(转)

    1.比特序 / 位序 / bit numbering / 我们知道一个字节有8位,也就是8个比特位.从第0位到第7位共8位.比特序就是用来描述比特位在字节中的存放顺序的.通过阅读网页的内容,关于比特序 ...

  6. 使用java代码查询本机ip地址

    一.使用java代码查询本机ip地址 public class TestInetAddress {public static void main(String[] args) {try {String ...

  7. 简单的Java代码测试样例设计

    简单的Java代码测试样例设计 函数一 public static int findLast(int[] x, int y) {for (int i = x.length - 1; i > 0; ...

  8. libsvm java 实例_LibSvm流程及java代码测试

    使用libSvm实现文本分类的基本过程,此文参考 使用libsvm实现文本分类 对前期数据准备及后续的分类测试进行了验证,同时对文中作者的分词组件修改成hanLP分词,对数字进行过滤,仅保留长度大于1 ...

  9. 让电脑死机的java代码_小编为你win7系统Java活动脚本出错导致电脑死机的还原方法...

    随着电脑的使用率越来越高,我们有时候可能会遇到win7系统Java活动脚本出错导致电脑死机问题,如果我们遇到了win7系统Java活动脚本出错导致电脑死机的问题,要怎么处理win7系统Java活动脚本 ...

最新文章

  1. 开始报名丨CCF C³-05@亚马逊云科技:未来云计算之旅
  2. ps -aux返回超过100%
  3. 12.PDE与PTE
  4. Docker 安装 For CentOS 7.4
  5. python通过什么连接数据库_如何使用python连接数据库?
  6. Cocos Creator 粒子效果插件
  7. Q96:PT(3.5):木纹纹理(Wood Texture)
  8. Python爬虫--- 1.2 BS4库的安装与使用 1
  9. 百度SEO之-关键词的种类
  10. KMS模拟器VLMCSD再次更新
  11. Python练习题:快递价格计算器
  12. 你眼中的程序员是什么样子的?
  13. 电脑自动关机后又自动开机怎么办
  14. python计算累计收益率的函数_大盘及策略收益率的公式推导与Python代码
  15. Linux 内核签名(签名内核模块)、linux 驱动签名
  16. 哈尔滨理工大学21级新生程序设计竞赛(同步赛)Jay的小迷弟(快速幂)
  17. SVN强制编写注释才能提交,提交中不允许删除文件操作。
  18. 深度学习-图片识别(上)
  19. QA实习第三周个人感受
  20. CentOS 8 通过二进制安装 MySQL

热门文章

  1. 计算机网络和传统电话网络的最大区别是,传统电话和网络电话有什么区别
  2. asp.net 调用本地php,.NET_Asp.net获取服务器指定文件夹目录文件并提供下载的方法,本文实例讲述了Asp.net获取服务 - phpStudy...
  3. 机考可以作弊吗_法考主观题也全面机考?不慌,看这篇文章
  4. 属于web框架的python库_(2017)我不建议使用的Python Web框架
  5. [POI2006]OKR-Periods of Words
  6. 理解JavaScript继承(二)
  7. Spring-JDBC通用Dao
  8. mysql命令行执行外部文件
  9. VS 2010 开发 ActiveX 开始篇
  10. ECSHOP其他页面调用首页的FLASH主广告