大端/小端模式

大小端缘由

为何会有大小端模式之分呢?这是由于在计算机系统中,咱们是以字节为单位的,每一个地址单元都对应着一个字节,一个字节为 8bit。可是在C语言中除了8bitchar以外,还有16bitshort型32bitlong型(要看具体的编译器),另外,对于位数大于 8位的处理器,例如16位或者32位的处理器,因为寄存器宽度大于一个字节,那么必然存在着一个如何将多个字节安排的问题。所以就致使了大端存储模式小端存储模式markdown

简述

  1. 大端模式:字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中,读取时从左往右读;
  2. 小端模式:字数据的低字节存储在低地址中,而字数据的高字节则存放在高地址中,读取时从右往左读;
  3. 大端模式进行数据存放符合人类的正常思惟,而小端模式进行数据存放利于计算机处理;
  4. 采用大端仍是小端与CPU设计编译器的实现都有关系,但就像吃鸡蛋无论是从大端开始打碎,仍是小端开始打碎,数据储存顺序的分歧并不会影响实际的数据读取

区别

咱们以16位宽的数0x1234举例假设他们的起始地址:0X6000;app

1. 在小端模式CPU内存中存放方式

内存地址 0X6000 0X6001
存放内容 0X34 0X12

读取时从右向左读;ide

2. 在大端模式CPU内存中存放方式

内存地址 0X6000 0X6001
存放内容 0X12 0X34

读取时从左向右读;ui

相关文章
相关标签/搜索