首页 > 试题广场 >

计算机在内存中存储数据时使用了大端(bigendian)、小

[单选题]
计算机在内存中存储数据时使用了大端(bigendian)、小端(littleendian)模式,请分别问0X123456在大端模式下,首个字节是:(    )
  • 0X23
  • 0X34
  • 0X56
  • 0X12
  • 0X1
  • 0X6
大端模式,就是从数的高位(大的位数)开始存; 小端模式,就是从数的低位(小的位数)开始存。
发表于 2020-10-14 21:14:03 回复(0)
BigEndian(大端):低字节在高内存地址
LittleEndian(小端):低字节在低内存地址
发表于 2020-05-20 22:45:19 回复(0)

所谓的大端模式(Big-endian),是指数据的高字节,保存在内存的低地址中,而数据的低字节,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;

所谓小端模式(Little-endian), 是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内在的低地址中,这种存储模式将地址的高低和数据位 权有效结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致;

发表于 2019-09-21 23:31:44 回复(0)
转载于https://blog.csdn.net/One_L_Star/article/details/81739729 有没有想过当定义一个变量的时候,这个变量在内存中是如何存放的呢?这就涉及到数据格式中的大端模式(Big-endian)和小端模式(Little-endian) 大端模式(Big-endian):高位字节存放在内存的低端地址,低位字节存放在内存的高端地址 小端模式(Little-endian):低位字节存放在内存的高端地址,高位字节存放在内存的低端地址 eg1:int a = 0x12345678,a在内存中是如何保存的? int型变量需要4个字节保存数据,a是4个字节的变量 把 a 分为 0x12,0x34,0x56,0x78 4个部分,分别保存到4个字节中 内存中,每个字节都有一个编号,这个编号就是内存的地址,所以没每个字节都有一个地址 a 需要占据4个字节,就会占据4个地址,这4个地址也是从低地址变化到高地址 若 a 变量中高字节(0x12)保存在低地址,则是大端模式 若 a 变量中低字节(0x78)保存在低地址,则是小端模式 如图,假设起始地址为0x4000 大端模式(Big-endian): 内存地址 0x4000 0x4001 0x4002 0x4003 存放内容 0x12 0x34 0x56 0x78 小端模式(Little-endian): 内存地址 0x4000 0x4001 0x4002 0x4003 存放内容 0x78 0x56 0x34 0x12 eg2:使用程序判断CPU是大端还是小端 #include<stdio.h> int main() { union w { int a; char b; } c; c.a = 0x12345678; printf("%x\n",c.b); } 打印结果为:78 我使用的是Linux系统编写的程序,由此可以看出此CPU为小端模式 分析:联合体所有成员占用同一段内存,修改一个成员会影响所有成员,给联合体的 a 赋值,但 a 和 b 的类型不同,从而轻松地获得了CPU对内存采用Little-endian还是Big-endian模式读写。 </stdio.h>
发表于 2020-04-21 00:55:50 回复(0)
大端:从高位开始存
发表于 2021-09-18 10:48:18 回复(0)
大端模式是数据的高字节存放在低地址,小段模式是数据低字节存放在低地址,地址向下生长
编辑于 2021-08-15 20:28:06 回复(0)
<p>选了a是什么鬼?</p>
发表于 2020-07-17 15:48:38 回复(0)