字节顺序:大端模式和小端模式

?字节顺序有“大端模式” 和 “小端模式” 两种

?字节顺序只是对内置数据类型而言,例如对于一整型(int,int 是内置数据类型)数,比如 0x123456

大端模式:

高地址---------->低地址

0x56 | 0x34 | 0x12

小端模式:

高地址 ---------->低地址

0x12 0x34 0x56 

但对于字符串没有大端和小端的说法(虽然字符是内置数据类型,但字符串不是),比如 “123456”,不管系统是大端还是小端模式,其在内存中的字节顺序都是:

低地址 -------------------------------> 高地址

0x31 | 0x32 | 0x33 | 0x34 | 0x35 | 0x36

 

?单个字节内的比特位不受这种字节顺序的影响,大于一个字节的数据类型才有字节顺序的问题

比如一个字节 1000 0000(或表示为十六进制 80H),不管是什么大端还是小端顺序其在内存中的表示都是这样(二进制):1000 0000。

?网络字节顺序是“所见即所得”的顺序,即大端模式

比如 int n = 0x567589;

所见到的是“567589”,大端顺序也是

低地址 ----------> 高地址

0x56 | 0x75 | 0x89

这就是网络字节顺序,所见到的顺序和在内存中的顺序是一致的。

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

原文地址:https://www.cnblogs.com/big-devil/p/8590226.html

时间: 2024-11-09 20:19:49

字节顺序:大端模式和小端模式的相关文章

大端模式与小端模式、网络字节顺序与主机字节顺序

大端模式与小端模式 一.概念及详解 在各种体系的计算机中通常采用的字节存储机制主要有两种: big-endian和little-endian,即大端模式和小端模式. 先回顾两个关键词,MSB和LSB: MSB:Most Significant Bit  ------- 最高有效位     LSB:Least Significant Bit ------- 最低有效位 大端模式(big-edian) big-endian:MSB存放在最低端的地址上. 举例,双字节数0x1234以big-endia

详解大端模式和小端模式

详解大端模式和小端模式 原文地址:http://blog.csdn.net/ce123_zhouwei/article/details/6971544 一.大端模式和小端模式的起源 关于大端小端名词的由来,有一个有趣的故事,来自于Jonathan Swift的<格利佛游记>:Lilliput和Blefuscu这两个强国在过去的36个月中一直在苦战.战争的原因:大家都知道,吃鸡蛋的时候,原始 的方法是打破鸡蛋较大的一端,可以那时的皇帝的祖父由于小时侯吃鸡蛋,按这种方法把手指弄破了,因此他的父亲,

大端模式与小端模式

对于跨越多字节的程序对象,我们必须建立两个规则:这个对象的地址是什么,以及在存储器中如何安排这些字节.在几乎所有的机器上,多字节对象都被存储为连续的字节序列,对象的地址为所使用字节的最小地址.例如,假设一个型为int变量x的地址为0x100,也就是说,地址表达式&x的值为0x100.那么,x的4个字节被存储在存储器的0x100,0x101,0x102和0x103位置. 排列表示一个对象的字节有两个通用的规则.考虑一个w位的整数,位表示为[Xw-1,xw-2,...,x1,x0],其中xw-1是最

详解大端模式和小端模式(转载)

详解大端模式和小端模式 转载自:http://blog.csdn.net/ce123_zhouwei/article/details/6971544 一.大端模式和小端模式的起源 关于大端小端名词的由来,有一个有趣的故事,来自于Jonathan Swift的<格利佛游记>:Lilliput和Blefuscu这两个强国在过去的36个月中一直在苦战.战争的原因:大家都知道,吃鸡蛋的时候,原始的方法是打破鸡蛋较大的一端,可以那时的皇帝的祖父由于小时侯吃鸡蛋,按这种方法把手指弄破了,因此他的父亲,就下

详解大端模式和小端模式(转)

一.大端模式和小端模式的起源 关于大端小端名词的由来,有一个有趣的故事,来自于Jonathan Swift的<格利佛游记>:Lilliput和Blefuscu这两个强国在过去的36个月中一直在苦战.战争的原因:大家都知道,吃鸡蛋的时候,原始的方法是打破鸡蛋较大的一端,可以那时的皇帝的祖父由于小时侯吃鸡蛋,按这种方法把手指弄破了,因此他的父亲,就下令,命令所有的子民吃鸡蛋的时候,必须先打破鸡蛋较小的一端,违令者重罚.然后老百姓对此法令极为反感,期间发生了多次叛乱,其中一个皇帝因此送命,另一个丢了

大端模式和小端模式的区别

大端模式和小端模式的区别 在C语言中除了8位的char型之外,还有16位的short型,32位的long型(要看具体的编译器),对于位数大于8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节,那么必然存在着如何将多个字节安排的问题.因此就导致了大端存储模式和小端存储模式. 大端模式: 字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中. 小端模式: 与大端存储模式相反,在小端存储模式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节. 例如,16位宽

计算机的大端模式和小端模式

大端模式和小端模式指的是我们计算机的存储数据的方通常又称为大尾和小尾. 大端:数据的高字节保存在内存的高地址 小端:数据的低字节保存在内存的低地址 下面是两种方式的示意图 堆栈指针寄存器SP的走向从SP到SP+3(SP始终指向栈顶) 知识链接: 断点和现场保护:这是堆栈的主要功能 保护断点指主程序调用子程序或执行中断服务程序的时候,为了能在子程序或者中断服务程序执行完之后顺利的返回主程序,必须将断点处的有关信息压入堆栈,执行完子程序后再按照先进先出的原则将其pop出来回复有关寄存器的内容,使得主

数据在内存中存储的方式:大端模式与小端模式

什么是大端模式,什么是小端模式? 所谓的大端模式(Big-endian),是指数据的高字节,保存在内存的低地址中,而数据的低字节,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放: 所谓小端模式(Little-endian), 是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内在的低地址中,这种存储模式将地址的高低和数据位 权有效结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致; 为什么有大小端之分: 因

操作系统大端模式和小端模式

在C语言中除了8位的char型之外,还有16位的short型,32位的long型(要看具体的编译器),对于位数大于8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节,那么必然存在着如何将多个字节安排的问题.因此就导致了大端存储模式和小端存储模式. 大端模式: 字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中. 小端模式: 与大端存储模式相反,在小端存储模式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节. 例如,16位宽的数0x1234在小端模式