浅谈~数据类型与整数(int)的数据存储

目录

1.数据类型

(1)为什么要有数据?

由此可见,创建数据的,设置数据类型的本质,就是告知计算机,在计算机的内存上,开辟空间。

(2)C语言中常见的数据类型

(3)数据类型的大小

(4)为什么数据类型的种类丰富?

 2.数据的存储

 (1)数据是怎样存储在内存里的?

      数据存储与数据类型是否有关?

(2)数据是怎样存入内存中的?

整数在内存中的储存形式:

原码-------------------- 反码--------------------- 补码

(3)数据存入内存的方式

总结五个问题


1.数据类型

(1)为什么要有数据

数据在我们生活中,无处不在。譬如说,当我们在商场看到琳琅满目的商品时,各种各样的商品,都会有对应的标签,标识这个商品的价值,也就是我们常说的价格,也就是商品的数据。

商品的价格,告知我们用多少钱可以买到商品。同理,在c语言中,一个个的数据,体现着我们对计算机发出的指令,需要多少内存才能满足我们所发出的数据的指令。

由此可见,创建数据的,设置数据类型的本质,就是告知计算机,在计算机的内存上,开辟空间。

(2)C语言中常见的数据类型

我们常见的有两大类: 基本数据类型 自定义类型 指针类型 空类型

基本数据类型:

char        //字符数据类型
short       //短整型
int         //整形
long        //长整型
long long   //更长的整形
float       //单精度浮点数
double      //双精度浮点数

自定义类型:

struct   //结构体

union    //联合体

enum     //枚举类型

(int) arr[] //数组
            //"()"内为可替换

指针类型:

//int a=0;
(int) *p = &a;  //指针类型

(int*) *p=&p;
                  //“()”内为可替换

以及空类型: void

(3)数据类型的大小

基本数据类型的大小(单位:字节,表中每数字一一对应。)

(4)为什么数据类型的种类丰富?

在看到C语言中的基本数据类之后,可能会有人会问。为什么要设置这么多的数据类型?难道一个int型的数据类型不够吗?

其实是不够的。正如我现在告诉你我兜里有一百。但我却没告诉你这一百是一百块,还是一百欧元、一百美元。因此,难以准确的知道我兜里到底有多少钱。

数据类型设置的具有多样性,也正是这个道理。在不同的场景、情况下,我们所要表达、表述的就不同。单一的数据,它是很难适应多样、变化、复杂的环境。因此,环境的多样性才是决定数据类丰富的重要因素。

 2.数据的存储

 (1)数据是怎样存储在内存里的?

     正如前文所说,定义数据的本质是在内存上开辟空间。数据类型是数据在内存中开辟大小的多少的决定性因素。

     但我们要在这里提一个问题:

      数据存储数据类型是否有关?

我们可以下面代码:

注:此代码在编译器并未报错。 

我们都知道,unsigned int 表示的是无符号整型,然而却被赋值-10,竟然编译器并不会报错。

当然这不是编译器不报错。而是简单地对上述的提问作了回答:

   数据的存入数据类型 并无关联。

于是乎,我们不免会发问,那数据是怎样存入内存之中的呢?

(2)数据是怎样存入内存中的?

我们或多或少知道,计算机不像人一样,熟悉十进制数,反而只认得二进制数。任何在内存中存入的数据,都是由二进制序列组成的。

整数在内存中的储存形式:

 int 类型的数据,会在内存中开辟大小为4字节的空间。此刻我们可以看到sz在内存中储存的序列。  注:此时并非二进制位,而是十六进制。

 在分析之前,我们得先引入计算机储存形式的概念,也就是我们常说的"三码"。

原码-------------------- 反码--------------------- 补码

(1)如何识别三码?

在计算机中,总是以补码,作为最终内存的存储二进制序列。

正数:三码相同

负数:三码不同

那么计算机是怎样区别 正数与负数呢?

 由此,我们就可以引出 “符号位”的概念。

1 ———> 负数

0 ———>正数       注:只需要在此知道有这个概念即可

(2)三码的关系

原码 进行 按位取反  ------> 反码+1------->补码。

注: 按位取反时,应当保证符号位不变。

(3)数据存入内存的方式

有上述三码的铺垫。也就可以进行图片内容的分析。

我们接下来再看看代码:

总结:

以上部分简单地谈了谈C语言中数据的存储以及数据的类型。

总结出来就是以下几个问题:

①计算机为什么要有数据

②数据为什么类型多样

③计算机是如何存储数据的

④数据类型与储存是否有关

⑤以及三码的认识

望诸位读者,能有所获,学有所成。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值