内存的存储及其存储方式

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++中,预定义了一些输入/输出流对象,它们可以方便地进行标准输入输出操作,可以大大简化我们的代码编写。本文将详细讲解C++预定义流对象的使用。 cin和cout cin和cout是C++中最常用的输入/输出流对象,它们分别用于输入数据和输出数据。下面是cin和cout的使用示例: #include <iostrea…

    C 2023年5月22日
    00
  • C++ 设置和获取当前工作路径的实现代码

    一、C++ 获取当前工作路径的实现代码 为了获得当前正在执行程序的工作目录,我们可以使用C++标准库函数getcwd。getcwd可以在头文件unistd.h中找到。它的原型是: char *getcwd(char *buf, size_t size); 该函数返回当前工作路径的字符串指针,buf是一个指向存储路径名的字符数组的指针。size应该是buf的长…

    C 2023年5月23日
    00
  • C++实现比较日期大小的示例代码

    让我来为您深入讲解一下“C++实现比较日期大小的示例代码”的完整攻略。 前置知识 在了解如何使用 C++ 实现比较日期大小之前,我们需要了解以下基础概念:时间戳和结构体。 时间戳是指自 1970 年 1 月 1 日 00:00:00 UTC 至现在的总秒数。在 C++ 中,我们可以使用 time_t 类型来表示时间戳。 结构体是由一系列不同类型的数据组成的自…

    C 2023年5月23日
    00
  • C语言如何实现翻转字符串中的单词

    翻转字符串中的单词是C语言中常用的字符串操作之一,实现该功能的主要思路如下: 读入原字符串 按空格将字符串分割成单词数组 翻转单词数组 按照空格重新组合单词数组形成新的字符串 以下是实现该功能的完整代码: #include <stdio.h> #include <string.h> void reverseWords(char* s)…

    C 2023年5月23日
    00
  • C++中四种加密算法之DES源代码

    下面是详细讲解C++中四种加密算法之DES源代码的完整攻略。 什么是DES算法 DES算法全称为数据加密标准(Data Encryption Standard),是一种使用密钥加密的对称加密算法。该算法是目前应用最广泛的加密算法之一,被广泛应用于各种安全领域。 DES算法的源代码 以下是C++实现的DES算法源代码: #include <iostrea…

    C 2023年5月23日
    00
  • 解析VC中创建DLL,导出全局变量,函数和类的深入分析

    创建动态链接库(DLL)可以让我们在不同的应用程序中共享代码。本文将介绍在VC中创建DLL并导出全局变量、函数和类的具体步骤。 创建动态链接库(DLL) 创建DLL文件的方式与创建Windows应用程序类似。打开Visual Studio,选择“新建项目”,在“Visual C++”节点下选择“Win32”,然后选择“Win32项目”,再选择“DLL”后,填…

    C 2023年5月23日
    00
  • 一文带你搞懂C语言预处理宏定义

    一文带你搞懂C语言预处理宏定义 什么是预处理宏定义 预处理宏定义是用宏定义指令将某个字符序列映射为另一个字符序列的编程技巧。在源代码编译之前,编译器会通过一个预处理器扫描源代码文件,将其中预处理宏定义的字符序列全部替换为对应的字符序列,这个过程称为宏展开。 预处理宏定义可以用来避免大量重复输入代码,增加代码的可维护性和可读性,同时也可以定义一些通用的常量或者…

    C 2023年5月23日
    00
  • Ubuntu中为Android系统上实现内置C可执行程序测试Linux内核驱动程序

    以下是详细讲解“Ubuntu中为Android系统上实现内置C可执行程序测试Linux内核驱动程序”的完整攻略。 简介 在实现Android系统的过程中,需要通过内核驱动程序来实现硬件设备的访问和控制,而在开发内核驱动的过程中需要进行测试。本文将介绍如何在Ubuntu操作系统上测试Android系统的内核驱动程序。 步骤 1. 在Ubuntu操作系统中搭建开…

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