数据在内存中的存储(超详细讲解)

这篇具有很好参考价值的文章主要介绍了数据在内存中的存储(超详细讲解)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一.C语言中数据类型的介绍

1.c语言的内置类型及大小(单位字节)

2.整型家族

3.浮点数家族

4.自定义类型(构造类型)

5.指针类型

6.空类型

二.整型数据在内存中的存储

1.二进制

2.整型数据在内存中的存储(示例)

3.数据字节序存储分类(2种)

 编程实现:检测VS上是哪种储存形式

三.整型家族有符号和无符号的区别


一.C语言中数据类型的介绍

1.c语言的内置类型及大小(单位字节)

char        字符数据类型     1

short       短整型      2

int           整型         4

long        长整型      4/8

long long   更长整型     8

float        单精度浮点数     4

double    双精度浮点数     8


2.整型家族

char          signed    char

                 unsigned    char

char存储的时候是存储的对应的ASCII码值,所以也归为整型家族;

short         signed     short  [ int ]

                 unsigned   short  [ int ]

int             signed     int

                 unsigned   int

long          signed    long      [ int ]

                 unsigned    long    [ int ]

long long      signed    long long    [ int ]

                    unsigned   long  long      [ int ] 


3.浮点数家族

float

double

long   double


4.自定义类型(构造类型)

数组类型     int   arr1[10]   ---->类型为  int   [10] 

                   char   arr2[10]   ----->类型为  char   [10]

                   int   arr3[5]    ------>类型为  int   [5]

结构体类型   struct

                     struct {                                   

                              结构体所包含的数据成员,包括变量数组

                             }结构变量;//结构变量可以指定一个或则多个

                   例如:

                       struct

                             {

                              char  name[11];

                              char  sex[5];

                              int    age;

                             }Stu;

枚举类型      enum

                如:enum { red=1, oreange=2, yelloe=3, green=4,blue=5}

联合类型      union


5.指针类型

int*  p1

float*   p2

char*   p3

void*   p4

结构体指针

......

6.空类型

void  (表示空类型,无类型)

通常应用函数的返回类型,函数的参数,指针类型

void   test( )

{

       int  i = 0;

       printf("%d\n",i);

}   

void *   p


二.整型数据在内存中的存储

1.二进制

注意实际上整型数据在内存中的存储,计算等操作都是用的补码

整型数据的二进制的表现形式有3种

原码,反码,补码

1.正整数的原码,反码,补码相同

如:

数据在内存中的存储(超详细讲解)

 2.负数的原码,反码需计算

如:数据在内存中的存储(超详细讲解)


2.整型数据在内存中的存储(示例)

数据在内存中的存储(超详细讲解)

本质上数据在内存中是以二进制的形式存储的,但是在VS上为了方便展示,显示的是十六进制

数据在内存中的存储(超详细讲解)

 这里的存储顺序是:小端字节序存储(下面有数据字节序存储分类)


3.数据字节序存储分类(2种)

字节序:是以字节为单位 ---> 讨论存储

存储的顺序分为两种:

1.小段字节序存储:把一个数据的低位字节的内容,存储在低地址处,把高位字节的内容,存储在高地址处;

2.大端字节序存储:把一个数据的低位字节的内容,存储在高地址处,把高位字节的内容,存储在低地址处;

数据在内存中的存储(超详细讲解)

 编程实现:检测VS上是哪种储存形式

----------------->思路:

 数据在内存中的存储(超详细讲解)

所以可以打印出一个字节的内容

如果是 ,则是小端字节序存储

如果是 ,则是大端字节序存储

代码实现:

#include <stdio.h>

int main()
{
	int num = 1;
	
	if (*((char*)&num) == 1)
	{
		printf("小端字节序存储\n");
	}
	else
	{
		printf("大端字节序存储\n");
	}

	return 0;
}

运行结果:

数据在内存中的存储(超详细讲解)



三.整型家族有符号和无符号的区别

char          signed    char

                 unsigned    char

short         signed     short  [ int ]

                 unsigned   short  [ int ]

int             signed     int

                 unsigned   int

long          signed    long      [ int ]

                 unsigned    long    [ int ]

long long      signed    long long    [ int ]

                    unsigned   long  long      [ int ]

我们所说的  short,  int  , long , long long 都是默认的是(有符号的)  signed  short  ,  signed  int , signed long ,   signed  long  long 

但是char  到底是signed  char  还是 unsigned  char  我们不知道

但是在VS上char------>是signed    char

有符号和无符号的区别:

数据在内存中的存储(超详细讲解)

数据在内存中的存储(超详细讲解)文章来源地址https://www.toymoban.com/news/detail-486814.html

到了这里,关于数据在内存中的存储(超详细讲解)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据在内存中的存储【上篇】

    🥳基本的内置类型 : 💡 char ---------- 字符数据类型 ----- 1 byte(8 bit) 💡short --------- 短整型 -------------- 2 byte(16 bit) 💡 int ------------- 整型 ---------------- 4 byte(32 bit) 💡long ---------- 长整型 -------------- 4/8 byte(32/64 bit) 💡long long ---- 更长的整型 ------- 8 byte(64 bit) 💡

    2023年04月18日
    浏览(29)
  • 【C】数据在内存中的存储

    正文开始前给大家推荐个网站,前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。 点击跳转到网站。 在内存中,整型和浮点型存储的方式是不同的,从内存中读取的方式也是有所差异的,这篇文章主要介绍整型和浮点型在内存中存

    2024年02月12日
    浏览(94)
  • 数据在内存中的存储——练习3

      首先二者极其相似 %u是无符号格式进行打印,或者说打印无符号整数。 这两题是有符号类型以无符号类型打印 上图是3.1的答案,在分析3.1之前我们首先要明白一个东西, char的取值范围。 char 的取值范围: char在VS中相当于 signed char 是有符号的。 有符号的表示在32位比特位

    2024年02月09日
    浏览(43)
  • c语言-数据在内存中的存储

    1.整数的2进制表示方法有三种,即 原码、反码和补码 2. 三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位最高位的一位是被当做符号位,剩余的都是数值位。 3. 存储时存储的是补码,取出的时取出的原码 如: 正负数的原码、反

    2024年02月04日
    浏览(43)
  • C语言:数据在内存中的存储

    在讲解操作符的时候,我们就讲过了下⾯的内容: 整数的2进制表示方法有三种,即 原码、反码和补码 三种表示方法均有 符号位 和 数值位 两部分,符号位都是用0表示“正”,用1表示“负”,而数值位最高位的⼀位是被当做符号位,剩余的都是数值位。 正整数的原、反、

    2024年04月10日
    浏览(48)
  • C语言——数据在内存中的存储

    本章重点 1. 数据类型详细介绍 2. 整形在内存中的存储:原码、反码、补码 3. 大小端字节序介绍及判断 4. 浮点型在内存中的存储解析 目录 1. 数据类型介绍 1.1 类型的基本归类 2. 整形在内存中的存储 2.1 原码、反码、补码 2.2 大小端介绍 2.3 练习 2.4 unsigned char 和 signed char的区别

    2024年02月08日
    浏览(41)
  • 数据在内存中的存储(C语言)

    ​ ✨✨ 欢迎大家来到贝蒂大讲堂✨✨ ​ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 ​ 所属专栏:C语言学习 ​ 贝蒂的主页:Betty‘s blog ​ 我们早就学完基本的数据类型,那这些数据类型到底在内存中怎么存储的呢~,今天贝蒂就带大家一起深入学习一下吧 1.1 整型 贝蒂说:“因

    2024年02月02日
    浏览(36)
  • 【C语言】数据在内存中的存储

    什么叫做浮点数,就是有小数的数据就要浮点数,比如:5.5 6.5 9.0等一些数据就叫浮点数,那么浮点数又是怎么在内存中存放的呢,下面听我一一道来。 浮点型的家族包括:float double long double 我们以以下代码为例比较下浮点数和整型数据内存中的存储是如何的: 打印的结果

    2024年02月07日
    浏览(38)
  • C语言数据在内存中的存储

    目录 前言 本期内容介绍 一、数据类型的介绍 1.1类型的意义: 1.2C语言中是否有字符串类型? 1.3类型的基本归类 整型家族: 浮点型(实型)家族: 构造(自定义)类型: 指针类型: 空类型: 二、整型在内存中的存储 2.1原码、反码、补码 总结: 2.2大小端字节序介绍 2.3什

    2024年02月16日
    浏览(38)
  • <C语言> 数据在内存中的存储

    C语言中的基本内置类型如下: 类型的意义: 1.使用这个类型开辟内存空间的大小(大小决定了使用范围)。 2.如何看待内存空间的视角。 整型家族: 注意:char有些编译器没有规定是unsigned还是signed 浮点数家族: 构造类型: 指针类型: 空类型: void 表示空类型(无类型)

    2024年02月16日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包