`
jiq408694711
  • 浏览: 33639 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

CPU端序(字节序)

 
阅读更多

小端: 低地址存放低位字节。(x86是小端模式

大端: 低地址存放高位字节。(非x86是大端模式

例1:看下面的几个字段

void testEndianMem(){
	char a[] = {0x12,0x34};
	short b = 0x5678;
	int c = 0x1a2b3c4d;
}


栈的按照地址的反方向增长,故存放到内存的情况应该是: 先存a,再存b,再存c。 因此c的地址最小,其次是b,其次是a。

内存中的情况如下图所示:

单独看a,因为存放的类型是字节长度,故按照地址增长方向存放的是12,34。

在看b,b是两字节的类型,x86是小端,所以低地址存放最低字节,应该存放78,然后再存放56。

在看a,a是一个四字节的类型,x86是小端,所以低地址存放低字节,就应该先存放4d,然后接下来是3c,2b,1a。

例2: 我们已经知道各种长度类型的字段如果存到内存中了。

下面的例子看如果已经知道了内存中的内容。那么对于不同类型的指针,它是如何解释并输出的?

void testEndian(){
	char array[12] = {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08};
	
	short *pshort = (short *)array;
	int *pint = (int *)array; 
	printf("%x\n",*(pshort+1));	//0x0403
	printf("%x\n",*(pint+1));	//0x08070605
}

很明显,我们已经可以知道对于array数组来说,因为都是字节类型,所以在内存中的存放顺序严格按照这里的顺序递增,即和地址增长方向保持一致。

那么这几个print语句会打印什么呢?

对于第一个打印语句,我们的指针是short型的,所以编译器认为我们存放的都是short值,会按照short的存储方式来解析。首先指针+1,走到03开始的位置,然后因为是小端,所以认为高字节在高地址处,低字节在低地址处,所以输出0x0403。(04是高字节,在高地址处,03是低字节,在低地址处)。

同理可以知道int类型的指针解释出来就是0x08070605。

分享到:
评论

相关推荐

    c++和python如何实现主机字节序和网络字节序的相互转换

     主机字节序是自己的主机内部,内存中数据的处理方式,要么是大端,要么是小端,取决于处理器类型和操作系统类型,和编程语言无关,如何判断主机的主机字节序是大端还是小端,请参见网络编程:主机字节序和网络...

    嵌入式实习-day6-网络编程

    网络编程: 目的:实现不同主机之间的进程间通信 协议:计算机之间交流的规则 TCP/IP:一组协议 TCP:传输协议 IP:网络协议 相关知识: 1、socket ...网络字节序:解决不同cpu架构主机之间通信的问题

    TMS320F28069特性及其电路设计

    F2806x Piccolo 系列微控制器为 C28x...),浮点单元,可编程平行加速器 (CLA),Viterbi、复杂算术、循环冗余校验 (CRC) 单元 (VCU),嵌入式存储器,6 通道 DMA低器件和系统成本,字节序:小端序,计时,可支持

    node-red-contrib-os:Node-Red节点,用于获取cpu系统信息

    node-red-contrib-os 节点,用于获取 CPU 系统信息。 这些节点利用来获取与操作系统相关的基本实用功能。... 返回CPU的字节序。 可能的值是大端的“BE”或小端的“LE”。 返回操作系统的默认临时文件目录。 驱

    ARM、PowerPC、MIPS反汇编工具V1.22

    V1.22相对上一版本,修复MIPS小端字节序反汇编错误,网上最新版本提示;V1.21相对上一版本,菜单调整,完善64位ELF文件解析,解析调试信息;另部分增强功能的菜单操作设有密码,如有兴趣欢迎咨询。欢迎大家反馈相关...

    ARM、PowerPC、MIPS反汇编工具V1.23.00

    V1.22相对上一版本,修复MIPS小端字节序反汇编错误,网上最新版本提示;V1.21相对上一版本,菜单调整,完善64位ELF文件解析,解析调试信息;另部分增强功能的菜单操作设有密码,如有兴趣欢迎咨询。欢迎大家反馈相关...

    ARM、PowerPC、MIPS反汇编工具V1.23.01

    V1.22相对上一版本,修复MIPS小端字节序反汇编错误,网上最新版本提示;V1.21相对上一版本,菜单调整,完善64位ELF文件解析,解析调试信息;另部分增强功能的菜单操作设有密码,如有兴趣欢迎咨询QQ2016508061。欢迎...

    ARM、PowerPC、MIPS反汇编工具V1.23.02

    V1.22相对上一版本,修复MIPS小端字节序反汇编错误,网上最新版本提示;V1.21相对上一版本,菜单调整,完善64位ELF文件解析,解析调试信息;另部分增强功能的菜单操作设有密码,如有兴趣欢迎咨询QQ2016508061。欢迎...

    C/C++ 获取自身IP与域名片段的示例代码

    数值在内存中存储的方式有两种,一种是大尾字节序,另一种是小尾,比如0x01020304这样一个数值,如果用大尾方式存储,其存储方式为01 02 03 04而用小尾方式存储则是04 03 02 01,一般Windows操作系统兼容的CPU为小尾方式,...

    ARM、PowerPC、MIPS反汇编工具V1.23.03

    V1.22相对上一版本,修复MIPS小端字节序反汇编错误,网上最新版本提示;V1.21相对上一版本,菜单调整,完善64位ELF文件解析,解析调试信息;另部分增强功能的菜单操作设有密码,如有兴趣欢迎咨询QQ2016508061。欢迎...

    《操作系统真象还原》高清完整版,baidu云

    0.19 什么是大端字节序、小端字节序 19 0.20 BIOS中断、DOS中断、Linux中断的 区别 21 0.21 Section和Segment的区别 25 0.22 什么是魔数 29 0.23 操作系统是如何识别文件系统的 30 0.24 如何控制CPU的下一条指令 30 ...

    ARM、PowerPC、MIPS反汇编工具V1.24.00

    V1.22相对上一版本,修复MIPS小端字节序反汇编错误,网上最新版本提示;V1.21相对上一版本,菜单调整,完善64位ELF文件解析,解析调试信息;另部分增强功能的菜单操作设有密码,如有兴趣欢迎咨询QQ2016508061。欢迎...

    ARM、PowerPC、MIPS反汇编工具V1.24.01

    V1.22相对上一版本,修复MIPS小端字节序反汇编错误,网上最新版本提示;V1.21相对上一版本,菜单调整,完善64位ELF文件解析,解析调试信息;另部分增强功能的菜单操作设有密码,如有兴趣欢迎咨询QQ2016508061。欢迎...

    ARM、PowerPC、MIPS反汇编工具V1.24.02

    V1.22相对上一版本,修复MIPS小端字节序反汇编错误,网上最新版本提示;V1.21相对上一版本,菜单调整,完善64位ELF文件解析,解析调试信息;另部分增强功能的菜单操作设有密码,如有兴趣欢迎咨询。欢迎大家反馈相关...

    ARM、PowerPC、MIPS反汇编工具V1.25.00

    V1.22相对上一版本,修复MIPS小端字节序反汇编错误,网上最新版本提示;V1.21相对上一版本,菜单调整,完善64位ELF文件解析,解析调试信息;另部分增强功能的菜单操作设有密码,如有兴趣欢迎咨询。欢迎大家反馈相关...

    ARM、PowerPC、MIPS反汇编工具V1.25.02

    反汇编带符号表的32位/64位ELF目标文件,CPU...V1.22相对上一版本,修复MIPS小端字节序反汇编错误,网上最新版本提示;另部分增强功能的菜单操作设有密码,如有兴趣欢迎咨询。欢迎大家反馈相关软件使用过程中的问题!

    ARM、PowerPC、MIPS反汇编工具V1.25.04

    反汇编带符号表的32位/64位ELF目标文件,CPU...V1.22相对上一版本,修复MIPS小端字节序反汇编错误,网上最新版本提示;另部分增强功能的菜单操作设有密码,如有兴趣欢迎咨询。欢迎大家反馈相关软件使用过程中的问题!

    ARM、MIPS、X86、PowerPC反汇编工具V1.25.05

    反汇编带符号表的32位/64位ELF目标文件,CPU...V1.22相对上一版本,修复MIPS小端字节序反汇编错误,网上最新版本提示;另部分增强功能的菜单操作设有密码,如有兴趣欢迎咨询。欢迎大家反馈相关软件使用过程中的问题!

    ARM、MIPS、X86、PowerPC反汇编工具V1.26.00

    V1.22相对上一版本,修复MIPS小端字节序反汇编错误,网上最新版本提示;V1.21相对上一版本,菜单调整,完善64位ELF文件解析,解析调试信息;另部分增强功能的菜单操作设有密码,如有兴趣欢迎咨询。欢迎大家反馈相关...

    ARM、MIPS、X86、PowerPC反汇编工具V1.26.01

    V1.22相对上一版本,修复MIPS小端字节序反汇编错误,网上最新版本提示;V1.21相对上一版本,菜单调整,完善64位ELF文件解析,解析调试信息;另部分增强功能的菜单操作设有密码,如有兴趣欢迎咨询。欢迎大家反馈相关...

Global site tag (gtag.js) - Google Analytics