我们先来看看为什么会有大小端之分呢?
在计算机系统中,规定:每个地址单元都会对应一个字节(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