如何测试你的系统是大端还是小端模式
2016-11-26 14:25
225 查看
我们先来看看为什么会有大小端之分呢?
在计算机系统中,规定:每个地址单元都会对应一个字节(8个bit),但是,在c语言中,除了有一个字节(8个bit)的char,也有两个字节(16个bit)的short,也有四个字节(32个bit)的long(在不同的编译器下可能不同)。对于16位或者32位的处理器,即就是大于8位的处理器,由于寄存器的宽度大于一个字节,那么就存在如何将一个多字节的变量的数据如何存放的问题——所以,就有了大小端之分。
首先,应该明确的是:
数据有高位和低位之分
地址有低地址和高地址之分
大小端的理解:
小端:将数据的低位存放在低地址处,将数据的高位存放在高地址处。
大端:将数据的低位存放在高地址处,将数据的高位存放在低地址处。
方法一:使用联合体测试:
程序的解析:
![](http://img.blog.csdn.net/20161126141823197)
方法二:
![](http://img.blog.csdn.net/20161126141913925)
方法三:
![](http://img.blog.csdn.net/20170114234817917?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzQ5OTI4NDU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
大小端的问题其实就是看数据在内存中是如何存放的,低位的数据是在低地址还是在高地址处存放的,所以无论多少种方法,实现的思想都是一样的。
在计算机系统中,规定:每个地址单元都会对应一个字节(8个bit),但是,在c语言中,除了有一个字节(8个bit)的char,也有两个字节(16个bit)的short,也有四个字节(32个bit)的long(在不同的编译器下可能不同)。对于16位或者32位的处理器,即就是大于8位的处理器,由于寄存器的宽度大于一个字节,那么就存在如何将一个多字节的变量的数据如何存放的问题——所以,就有了大小端之分。
首先,应该明确的是:
数据有高位和低位之分
地址有低地址和高地址之分
大小端的理解:
小端:将数据的低位存放在低地址处,将数据的高位存放在高地址处。
大端:将数据的低位存放在高地址处,将数据的高位存放在低地址处。
方法一:使用联合体测试:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> int CheckSystem() { union check { int i; char ch; }c; c.i = 1; return (c.ch == 1); } int main() { int ret = CheckSystem(); printf("ret : %d\n",ret); system("pause"); return 0; }
程序的解析:
方法二:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> int CheckSystem() { int a = 1; if (*((char *)(&a)) == 1) { return 1; } return 0; } int main() { int ret = CheckSystem(); printf("ret : %d\n",ret); system("pause"); return 0; }
方法三:
大小端的问题其实就是看数据在内存中是如何存放的,低位的数据是在低地址还是在高地址处存放的,所以无论多少种方法,实现的思想都是一样的。
相关文章推荐
- 【C语言深度剖析】测试系统存储是大端模式还是小端模式的方法
- 测试系统存储是大端模式还是小端模式的方法
- 如何测试你的平台是大端字节序还是小端字节序
- 如何判断CPU是大端还是小端模式
- 如何用程序确认当前系统的存储模式(大端模式、小端模式)
- 如何判断CPU是大端还是小端模式
- 如何判断CPU是大端还是小端模式
- 如何判断CPU是大端还是小端模式
- 写一个程序判断当前系统存储模式是大端还是小端
- 测试自己的系统是大端还是小端
- 如何判断CPU是大端还是小端模式
- 如何使用程序判断系统是大端还是小端?
- 如何判断CPU是大端还是小端模式
- 辨别系统是大端模式还是小端模式
- 如何检测cpu的字节顺序是小端模式还是大端模式
- 【转】如何判断CPU是大端还是小端模式
- 如何判断CPU是大端还是小端模式
- C++学习---一道笔试题:测试当前电脑系统是大端存储还是小端存储数据
- 如何判断机器CPU是大端模式还是小端模式
- 测试一台电脑的存储是大端模式还是小端模式