内存的存储及其存储方式

1. 内存存储
2. 内存存储的方式
3.为什么要有大小端模式的区分
4.判断大小端模式

1.内存的存储:内存是由低地址向高地址进行存储。(即我们个位数为低地址位,而百,千位为高地址数)

为方便理解我们定义了一个变量a,如下
内存的存储及其存储方式

vs上方窗口栏:调试-->窗口-->内存-->内存1

内存的存储及其存储方式

在地址处输入&a,取a的地址

内存的存储及其存储方式

内存存储总结:我们可以看到数据是从左往右,即低地址往高地址走

2. 内存存储的方式:内存存储的两种方式分别为大端存储模式小端存储模式,其概念如下:

大端模式的定义:是指数据的低位保存在内存的高地址中,而数据的高位,保存在数据的低地址中。

小端模式的定义:是指数据的低位保存在内存的低地址中,而数据的高位,保存在数据的高地址中。

大小端存储理解方式如下图:
内存的存储及其存储方式

3.为什么会有大小端的区分

   这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,
一个字节为8bit。但是在C语言中除了8 bit的char之外,还有16 bit的short型,32
bit的long型(要看具体的编译器),另外,对于位数大于8位的处理器,例如16位或者
32位的处理器,由于寄存器宽度大于一个字节,那么必然存在着一个如何将多个字节安排 
的问题。因此就导致了大端存储模式和小端存储模式。

4.判断存储模式为大小端

可通过如下得知存储模式为大端还是小端:

int main(){
  int a=1;
  char*p=(char*)&a;
  if(*p==1){
    printf("小端\n");
  }
  else{
  printf("大端\n");
  }
  return 0;
}

原文链接:https://www.cnblogs.com/zzao/p/17110790.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:内存的存储及其存储方式 - Python技术站

(0)
上一篇 2023年4月18日
下一篇 2023年4月18日

相关文章

  • c++ 如何实现线程注入

    C++如何实现线程注入是一个相对复杂和高级的主题,需要一定的专业知识和经验,操作不当可能会对系统和应用程序造成不可预知的损害。下面是一个简单的线程注入攻略,供参考。 前置条件及准备工作 在进行线程注入操作之前,需要考虑以下几点: 需要注入的进程必须是完全信任的,否则注入操作有可能会被拒绝或失败。 需要了解目标进程的架构、平台和权限等信息,以确定注入方式和实现…

    C 2023年5月23日
    00
  • C语言 模拟实现strlen函数详解

    C语言模拟实现strlen函数详解 1. 什么是strlen函数 strlen函数是C语言标准库中的一个字符串处理函数,该函数的作用是计算字符串的长度,即字符串中字符的个数(不包括字符串末尾的’\0’)。该函数的原型声明如下: size_t strlen(const char* str); 其中,str是待计算长度的字符串。返回值为字符串中字符的个数。 2.…

    C 2023年5月23日
    00
  • C++游戏教程基本技巧之随机化详解

    《C++游戏教程基本技巧之随机化详解》是一篇针对C++游戏开发者的教程,旨在讲解如何使用随机数来增加游戏的趣味性和难度。该教程主要包含以下几个方面的内容: C++随机数生成器的介绍 随机数应用在游戏中的场景 随机数生成的技巧和注意事项 随机数实现的两个示例 C++随机数生成器的介绍 C++的标准库中提供了一个随机数生成器库,名为rand()。该函数可以生成一…

    C 2023年5月22日
    00
  • C#实现任意数据类型转成json格式输出

    C#是一种强类型语言,而JSON是一种轻量级的数据交换格式。在C#中,将任意数据类型转换为JSON格式可以便于进行数据传输、数据存储和Web服务请求等操作。下面是实现任意数据类型转换为JSON格式的攻略: 第一步:导入Json.NET库 在C#中,我们可以使用Json.NET库来实现JSON格式的转换。我们可以在Visual Studio中通过NuGet包管…

    C 2023年5月23日
    00
  • c++ base64编解码使用示例

    C++ Base64编解码使用示例 简介 Base64是一种编码方式,能够将二进制数据转化为可打印的ASCII字符,常用于邮件、XML等文本转移过程中对二进制数据进行编码。C++也提供了Base64编解码的支持,这里就进行一下说明。 Base64编码 Base64编码将三个8位的字节转换为四个6位的字节,即每3个字节将会变成4个字节,更准确的说是每满4个字节…

    C 2023年5月30日
    00
  • Mac系统下源码编译安装MySQL 5.7.17的教程

    下面是“Mac系统下源码编译安装MySQL 5.7.17的教程”: 准备工作 在开始安装前,需要准备一下基础工作: 安装Xcode开发环境 Xcode 是 Mac 上的 IDE 工具,可以辅助开发各种编程语言的程序。获取安装包方式有两种: 在 Mac App Store 中搜索 Xcode 下载安装(需要苹果账号); 前往苹果的开发者网站手动下载并安装。(需…

    C 2023年5月22日
    00
  • 浅谈VC++中的内联

    针对“浅谈VC++中的内联”的问题,我为您提供如下攻略。 什么是内联函数? 内联函数是在编译器编译程序的时候,程序员要求编译器将函数直接将函数中的代码插入到函数调用的位置,而不是正常的调用函数的方式。因此,内联函数的执行效率较高,但会增加程序代码的大小。在C++中,使用关键字inline来定义内联函数。 如何在VC++中定义内联函数? 在VC++中,通常使用…

    C 2023年5月23日
    00
  • 使用JSONObject生成和解析json的方法

    使用JSONObject生成和解析json的方法,是在Java开发中经常需要用到的一种技术。下面是一份关于该技术的攻略: 生成Json 在Java开发中,我们可以通过使用JSONObject类来生成JSON对象。 首先需要导入以下依赖: <dependency> <groupId>org.json</groupId> &l…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部