00:01
看一下整数类型,那前面呢,我们讲了变量的数据类型的各种,现在呢,我们就一个一个讲,首先我们看。整数型。整数类型呢,它的基本概念就是存放整数的,你比如像12,三十三千四百五十六等等,这些呢,都是整数类型,那这个基本案例我就不说了,因为基本案例咱们在前面啊,你已经举举过例子了,对不对,你最简单的比如说你写一个in number。等于十,好这就是一个把一个整数给到一个变量,好这个去过哈,下面呢,我们来看一下整数类型的需要同学们知道的一些东西,那前面老师讲了整形号本身应该是从这个像这个特。还有这个short,那这些都有,但是这顺便呢,我们就把这个差也放这了,为什么把这个差也放在这个整形来一一并说了呢?呃,其实是这样子的,因为这个char呀,就是这个我们说的字符型。
01:08
字符型它的本质,它的底层呢,也是用这个整数来存放的,就是它是以整数的形式来标识对应的一个字符,因此呢,我在这也把它列出来了,这后面我们还会单说,那现在我们来看一看。在C语言里面呢,大家有助于观察,我们就以我们以整形为例,大家认真听。大家看整形呢,它有这么几种写法,一个直接叫T,还有一个写法叫soundt。还有一个叫on sand in,那说明什么呢?说明我们这个整形呢,不对于不同的整形它都有。这么三种写法。这个写法大家看这个int。这个T呢,它默认就是有符号类型的,就是它带正数和负数,待会我举例。
02:03
然后这个S呢,就明确指定它是有符号的,也就是说这两者其实是一回事,就你比如说写一个int a等于什么什么和写一个三个int a等于什么什么是一样的。那么大大家再来看这个针对int来说呢,它有它这个存储空间,跟我们的系统有关系,可能是两个字节,也可能是四个字节。那跟系统有关,如果是两个字节的话,注意听,如果是两个字节呢,呃,它表示的范围就是这样的一个范围。如果是四个字节,那么它表示的范围就是这么一个范围,那为什么表示的不一,范围不一样,大家有没有发现,你看如果是两个字节的情况下,它的范围就是这这块负的32768到正的32767,而如果是四个字节,它表示范围就明显变大了,为什么呀?
03:05
因为你的空间变大了,所以说它表示的范围也就变大了,那现在呢,我们以int类型给大家把这三种类型都讲了。对三种类类型讲了,然后你们明白了这三种类型,那么short还有那就一样可以推导好不好,我们就以int为例,以int为例。以学校啊,以int为例,说明一下它不同的方式,不同的定义方式,它的范围是什么样子的,来打开我们这里,那现在呢,我们新建一个类型啊,新建一个文件,我们就叫int DEMO。专门讲int它的范围的问题,Int。OK,那现在呢,我们。添加,同样为了待会我们好好跑起来呢,我先把前面这个注销了,因为咱们不能有两个相同的主函数,对不对,所以我在这写写一下,首先我偷个懒,我把前面引这个头文件拿过来用一下。
04:09
这个没问题吧。好的,然后呢,我把它去掉,诶说错了啊,然后呢,这边写上void。主方法啊,主函数,那现在呢,我们来分别写这么几个东西,第一个第一个如何确定确定。我们来看看啊,看看在老师的这个电脑,在老这个系统下,Int有有几个字节。他的空间站给自己怎么怎么整呢,我给大家演示一下。Print print f这样写就可以了,比如说我说int的字节数等于摆D。我怎么看呢?在。这个C语言里面,它提供了一个方法叫size of。Set of在这里面,你把这个类型写进去,就能看见它的大小。
05:03
它的大小,那在我这个系统里面有几,呃,一个int占几个字节呢?我们运行一下。我们运行完了后,我们会发现它提示的是是。同学们注意观察。好,运行起来,我这个系统里面int是四,如果是四的话,注意听我是四个字节,如果是四个字节的话呢,根据刚才老师讲的它这种写法,那么对于定义成int的话,它的范围就应该是这个范围。能理解,如果你定义成3IT呢,也是这个范围。我们来看看是不是这样子,来给同学们演示一下。我先定义吧,啊,NUMBER1等于,那怎么来测它的范围呢?我就找这个极限值,比如说它最小是不是这个负数是不是,因为你这个同学们注意听啊,就是。如果定义成定义成int,则默认默认就是什么呢?默认默认就是带符号的。
06:09
带符号。什么叫带符号呢?就是分正数,正数,听听这句话,分正数和负数。这个就叫带符号,好的我给大家写到这来。它的范围就这么大。这样子的,那是不是这样子的呢,我们输出一下啊同学们PF。来找一个NUMBER1等于百分号D,我把NUMBER1输出来。那同学们看,我现在是已经写到最小最小了,我运行看看它输出的是不是这么大。我们看一下是不是这么大呢,我们发现没有任何问题,它输出的就是负的这个数,那如果说我比它再小,再比它再小一个。我把它故意写成比它的范围还小的一个数,我们看看它输出的是什么。
07:03
好,同样我在这为了好看,我这这都打一个换行好不好。好,我运行看看它数字是负的,这么这么多吗。诶,我们看看哦,这个地方没有关闭,是不是我们关闭一下再运行。运营起来,我们看这个结果我们想的就不一样了,你看你明明你明明写的是负的这么多,但是它输出的却变成一个正数了,说明什么?说明你这个数存到这个NUMBER1里面去,按照这个情况存放,它已经越界了。造成的数据的溢出,就不是我们输给他付的这个这个值了,这就叫数据溢出了,因此就相当于越界了,相当于越界了,超出他的范围呢,他就按照溢出的方式来处理,因此我们可以证证明刚才老师说的这个范围的确有效,那么这个范围我就不去测了,好吧,你们一样可以测,就是如果是int的话呢,它的大小优势按四个字节来算,它最大也就是这么大。
08:09
明白意思吧,超过这个也依然会造成数据的溢出,也就说不正确了,那同样我们再写一个send。IG3的NUMBER1NUMBER2吧,我们同样写个。好,我们也来试一下,我们也来试一下,首先我给他一个极小的负值。同学们注意看啊,我现在呢,给他一个。这样的数一个八。啊,一个八。那如果是一个八的话呢,我们在这里再输出NUMBER2。NUMBER2等于百分号D。好的,我把NUMBER2也输出,我们看看现在这个值它能否,那我这样子,我反过来测一个正数吧,因为它两个都一样嘛,我认为它正数最大是这么多。
09:01
那我来测正数也是一样,正数是七。好,同学们看,嗯,我们刚才讲过s in呢,呃,S其实就这两个是一样,就是如果定义成in,默认带符号的集。其实就是善。三善。啊,这两个其实是等价的,那如果你给这个数有没有越界呀,我们看一下有没有约界,我们发现呢,并没有约界,所这个输出来应该是就这个字,我们运行一下。运营起来。好的,诶,这还是一个原因,这没有关闭再运行。起来。那运营起来过后呢,同学们可以看到现在是正确的对不对,是对的吧,那现在我把这个换大一点。大一点,大一个值,其实已经越界了,这个时候已经越界了。是不是越界了?同学们,那如果越界,你们会看到NUMBER2输出呢?就不再是这个值了。
10:03
又变成另外一个字。说明他越见。好,同学们看这里哦,还是这不好意思啊,这老忘了把它关闭,我们再运行一下。运营过来呢,我们可以看到现在这个值已经不是我们讲的这个,看同学们看是不是前面带了一个负号了。显然不是我们正的这个值了,因此这个也就不是这个范围了,那有些同学老师你在试一个可以表示的呢,我们再看一个不带运算符的,还有一种就是看看这里就是我们的。这个字叫做an in,如果是S,你是四个字节,它表示的范围内是零到这块,当然你不能填复数了啊,你给它一个负数,呃,它也不接收,因为它的范围呢,它就不带符号了嘛,所以它全是正数,那么正数的范围呢,就是零到这么多,大家可以看出来它是怎么算的呀,大概是它的二倍。
11:01
就是相当于是,呃,原先这个这个范围的负数全部表成正数了,相当于在这个基础上成了一个二,那为什么是成了一个二呢?这个涉及到一个二进制的问题。呃,关于为什么它表示是这个范围是涉及到二二进制的概念,后面呢,我们再讲二进制的时候,再给大家说一下,为什么你的两个字节或者四个字节,或者带符号不带符号,它的范围是这样子的,因为这里面的牵扯的东西太多了,我现在我给你们讲二进制,你们会听不懂。反而适得其反,现在你就相当于有一个概念,说它是有范围的,明白这意思就可以。我们看一下,就是刚才呢,这个我们已经测试出来它的一个效果了,那我在这多说一句,同学们,我在这里多说一句,嗯,就是你这个带符号和不带符号呢,有时候跟这个系统也有关系。对,我就提到这一点啊,就是说有可能你会出现这么一个情况,比如说你这写的就是on sand int,你写的你明明标识的是一个on sand in特,但是呢,不同的系统可能并不识别。
12:11
明白这个意思吧,就说因因为C语言呢,跟这个系统它它是很这有一个密切的关联关系,这个地方只是给出了他的一个规则,只是给给出了他的一个规则而已,这点请大家注意一下就可以了,好呃,那这个范围呢,我们就说到这里,说到这里。那这块我们的这个测试的测试的案例也就先讲到这里哈。
我来说两句