当前位置: 首页 > news >正文

【概念辨析】大小端存储

       一、情境

        在进行内存调试窗口的查看时,是不是会有一种错觉,就是它存的数据与我们预期的都是颠倒的,比如:

       这里的a就和我们预期的不是很相同。

二、大小端

        大小端是计算机厂家根据自己的习惯制定的关于数据字节序的规则。

1.大端存储

        大端存储是将高位数据存放在地址的低处,低位数据反之。

2.小端存储

        小端存储是将低位数据存放在地址的低处,高位数据反之。

3.图解

 

三、大小端的判断

1.复杂版代码如下:


#include <stdio.h>int SystemCheck()
{// 1的低位是1,高位是0int a = 1;// *pa是从低地址处开始取数据// 如果是0,那么低位放的就是0 -> 大端// 如果是1,那么低位放的就是1 -> 小端char* pa = (char*)&a;if (*pa == 0){printf("大端\n");}else{printf("小端\n");}
}int main()
{int ret = SystemCheck();return 0;
}

2.简洁版代码如下:

 

#include <stdio.h>int SystemCheck()
{// 1的低位是1,高位是0int a = 1;// *pa是从低地址处开始取数据// 如果是0,那么低位放的就是0 -> 大端// 如果是1,那么低位放的就是1 -> 小端return*(char*)&a;
}int main()
{int ret = SystemCheck();if (ret == 0){printf("大端\n");}else{printf("小端\n");}return 0;
}

四、总结 

        小端存储的口诀:小小小。

第一个小:数据的低位

第二个小:地址的低位

第三个小:小端

连起来就是数据的低位放在地址的低位是小端存储。

        x86架构基本都是小端存储,以此可以检验我们的结果是不是正确的。

http://www.lryc.cn/news/20925.html

相关文章:

  • 并发编程-学习总结(下)
  • arm汇编指令详细整理及实例详解
  • 高等数学笔记(下下)
  • 零基础如何入门网络安全(黑客)
  • 【C++】map和set用法详解
  • BLIP2-图像文本预训练
  • Faster-Rcnn修改转数据集文件
  • 带你沉浸式体验删库跑路
  • Linux学习(8.5)文件内容查阅
  • 【Docker】命令总结
  • 并发编程-学习总结(上)
  • QT之OpenGL混合
  • 【1255. 得分最高的单词集合】
  • nginx模块介绍
  • 排错工具ping和trace(电子科技大学TCP/IP实验四)
  • node.js中ws模块创建服务端和客户端
  • kubernates-1.26.1 kubeadm containerd 单机部署
  • 如何在 iPhone 上恢复已删除的通话记录/通话记录
  • Canonical为所有支持的Ubuntu LTS系统发布了新的Linux内核更新
  • MS9122是一款USB单芯片投屏器,内部集成了USB2 0 控制器和数据收发模块、HDMI 数据接口和音视频处理模块。MS9122可以通过USB接口显示
  • C++学习笔记-数据抽象
  • 【Android】Android开发笔记(一)
  • C语言数据结构(二)—— 受限线性表 【栈(Stack)、队列(Queue)】
  • 线程安全之synchronized和volatile
  • 量子计算对网络安全的影响
  • MyBatis——增删改查操作的实现
  • 【7】linux命令每日分享——cat查看文件内容
  • 新氧2023年财务业绩预测:退市风险大幅降低,收入增长将放缓
  • C++使用shared_ptr与weak_ptr轻松管理内存
  • Buuctf reverse [FlareOn4]IgniteMe 题解