【时时三省】有关数据的大端存储&&小端存储

1,定义

小端存储:

低位字节存放在内存的低地址端高位字节存放在内存的高地址端

小端存储:

高位字节 存放在内存的低地址端低位字节存放在内存的高地址端

2,举例

例如一个16进制的数据 0x12345678 在内存中的存储方式:

地址 小端存储 大端存储
0x0001 0x78 0x12
0x0002 0x56 0x34
0x0003 0x34 0x56
0x0004 0x12 0x78

3,存在原因

        因为内存是按照字节进行存储数据的。那么对于一字节的数据,不存在存储的顺序问题。而对于多字节的数据,则存在存储的顺序问题。

4,测试代码

代码解释:

        a为int型数据,内存占用四个字节。那么如果为小端存储,当char型指针指向变量a的地址时,取出的数据应该是最低一个字节的数据。


int main()
{
	int a = 0x12345678;
	char* ptr = (char*)&a;
	printf("sizeof a: %d\n", sizeof(a));
	if (1 == *ptr)
	{
		printf("小端存储: %p, %p, 0x%x\n", &a, ptr, *ptr);
	}
	else
	{
		printf("大端存储: %p, %p, 0x%x\n", &a, ptr, *ptr);
	}
	return 0;
}

执行结果如下:

相关推荐

  1. C 检查存储还是大端

    2024-07-15 04:40:03       41 阅读
  2. Hive数据存储

    2024-07-15 04:40:03       35 阅读
  3. 数据存储-文件存储

    2024-07-15 04:40:03       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 04:40:03       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 04:40:03       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 04:40:03       57 阅读
  4. Python语言-面向对象

    2024-07-15 04:40:03       68 阅读

热门阅读

  1. UOS查看系统信息命令行

    2024-07-15 04:40:03       19 阅读
  2. 【学习笔记】Redis学习笔记——第11章 AOF持久化

    2024-07-15 04:40:03       22 阅读
  3. LeetCode 219. 存在重复元素 II

    2024-07-15 04:40:03       23 阅读
  4. 实验05 单元测试

    2024-07-15 04:40:03       22 阅读
  5. Hash表以及put方法源码的分析

    2024-07-15 04:40:03       21 阅读
  6. 対日開発(錬体境から金丹境まで)

    2024-07-15 04:40:03       16 阅读
  7. 用python实现反向输出链表

    2024-07-15 04:40:03       26 阅读
  8. 如何评价一个AI系统

    2024-07-15 04:40:03       20 阅读