大端Big-Endian 、小端Little-Endian
来源:互联网 发布:微信菜单事件推送 php 编辑:程序博客网 时间:2024/05/22 15:15
Big-Endian和Little-Endian的定义如下:
举一个例子,比如数字0x12 34 56 78在内存中的表示形式为:
1)大端模式: 高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。
低地址 -----------------> 高地址0x12 | 0x34 | 0x56 | 0x78
2)小端模式:高位字节排放在内存的高地址端, 低位字节排放在内存的低地址端。
低地址 ------------------> 高地址0x78 | 0x56 | 0x34 | 0x12
可见,大端模式和字符串的存储模式类似。
3)下面是两个具体例子:
16bit宽的数0x1234在Little-endian模式(以及Big-endian模式)CPU内存中的存放方式(假设从地址0x4000开始存放)为:
32bit宽的数0x12345678在Little-endian模式以及Big-endian模式)CPU内存中的存放方式(假设从地址0x4000开始存放)为:
内存地址小端模式存放内容大端模式存放内容0x40000x780x120x40010x560x340x40020x340x560x40030x120x784)大端小端没有谁优谁劣,各自优势便是对方劣势:
小端模式 :强制转换数据不需要调整字节内容,1、2、4字节的存储方式一样。
大端模式 :符号位的判定固定为第一个字节,容易判断正负。
#include<stdio.h> int main(){ short x=0x1122; char x0,x1; char *p= (char *) &x; x0= p[0]; //低地址单元 x1= p[1]; //高地址单元 printf("x0=0x%x,x1=0x%x",x0,x1);// 若x0=0x11,则是大端; 若x0=0x22,则是小端...... return 0;}
阅读全文
0 0
- 小端(Little Endian) 大端(Big Endian)
- 大端(big endian)小端(little endian)
- 大端Big-Endian 、小端Little-Endian
- 字节序(Endian),大端(Big-Endian),小端(Little-Endian)
- 字节序(Endian),大端(Big-Endian),小端(Little-Endian)
- 字节序(Endian)、大端(Big-Endian)、小端(little-Endian)
- 大端(Big Endian)与小端(Little Endian)详解
- 大端(Big Endian)与小端(Little Endian)详解
- 分析 大端(Big Endian)和小端(Little Endian)
- 大端(Big Endian)与小端(Little Endian)详解
- Little endian and big endian大端小端
- Little endian and big 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)简介
- 浅谈最小生成树
- [Nagios] 故障报错处理
- 入门Webpack,看这篇就够了
- Hive基础sql语法
- Spring框架及源码知识点
- 大端Big-Endian 、小端Little-Endian
- CC2640R2F BLE5.0 CC2640R2F的存储架构
- Heavy Transportation dijkstra(附vector模拟邻接表)
- 物化视图 Materialized View
- java面向对象四大特征
- Xshell连接Linux心得体会
- 欢迎使用CSDN-markdown编辑器
- [LeetCode]144. Binary Tree Preorder Traversal--二叉树前序遍历
- 通过lwip2.0.2 PPP协议与GPRS模块实现网络通讯