大端(Big Endian)和小端(Little Endian)
2015-04-13 21:15
363 查看
对于多字节数据,如在32位系统中的一个无符号短整型数:
unsigned short usTestNum = 0x1122;
该数据占两个字节,在计算机中地址索引的最小单位是字节,也就是说高位0x11和地位0x22在计算机中分别有一个地址,那么谁的地址大谁的地址小呢。
大端模式:高位存放于低地址,即如果0x11的地址小于0x22的地址,就是大端模式;
小端模式:地位存放于低地址,即如果0x22的地址小于0x11的地址,就是小端模式;
那么计算机到底是大端模式还是小端模式是由CPU和操作系统决定的,下面提供一个简单的判断大小端的程序:
unsigned short usTestNum = 0x1122;
该数据占两个字节,在计算机中地址索引的最小单位是字节,也就是说高位0x11和地位0x22在计算机中分别有一个地址,那么谁的地址大谁的地址小呢。
大端模式:高位存放于低地址,即如果0x11的地址小于0x22的地址,就是大端模式;
小端模式:地位存放于低地址,即如果0x22的地址小于0x11的地址,就是小端模式;
那么计算机到底是大端模式还是小端模式是由CPU和操作系统决定的,下面提供一个简单的判断大小端的程序:
#include <stdio.h> #include <stdlib.h> int main() { short sTestData = 0x1122; unsigned char cNum = *((unsigned char*)(&sTestData)); if (cNum == (unsigned char)0x11) { printf("big endian\n"); } if (cNum == (unsigned char)0x22) { printf("little endian\n"); } return 0; }目前我使用的计算机不论是windows系统还是ubuntu系统是小端模式。
相关文章推荐
- 大端(Big Endian)与小端(Little Endian)详解
- 大端(Big Endian)与小端(Little Endian)详解
- 也谈大端模式(big endian)和小端模式(little endian) (一) 引 子
- 大端(Big Endian)与小端(Little Endian)详解
- 大端(Big Endian)与小端(Little Endian)简介
- 大端(Big Endian)与小端(Little Endian)简介
- 一分钟了解字节序的大端(Big Endian)和小端(Little Endian)
- 大端(Big Endian)与小端(Little Endian)详解
- 大端(Big Endian)与小端(Little Endian)详解
- 大端(Big Endian)与小端(Little Endian)详解
- 大端(Big Endian)、小端(Little Endian)存储模式名字的来历
- 大端(Big Endian)与小端(Little Endian)详解
- 大端(Big Endian)与小端(Little Endian)简介
- 大端(Big Endian)与小端(Little Endian)
- 大端[big endian]和小端[Little endian]
- (转)测试CPU是大端Big endian 还是小端Little Endian的C代码
- 大端(big endian)和小端(little endian)
- 推断CPU 是小端存储(Little endian)还是大端存储(Big endian)模式
- 大端(Big Endian)与小端(Little Endian)
- 大端(Big Endian)与小端(Little Endian)详解