00:01
简啊好,这个溢出这块,咱们前面已经把这个溢出的整体那个内容给大家说了一遍,是不是,然后咱们再具体的看一下这个这个这个东西到底什么东西,那数值溢出是当一个数据类型。能够存放的最大值超出了范围,数据会出现什么?会出现溢出,是不是咱们前面已经说了吧,那溢出情况下怎么样,会怎么办呢?是有括号啊,有符号倍的情况,最高V移出的区别在于什么?符号V出会导致正负发生改变,因为这个一再加一之后变成怎么变成这个往前进一了是吧?是这个值可能发生变成零了吧,这是溢出啊,虽然这个呃呃方式啊,所以说可能会导致溢出,导致这溢出之后这个数据发生变化了,知道吧。为什么数据发生变化呢?咱同样再拿出咱们这个数据就给大家做举例,比如说这个数一出了之后,比方前面有个一是不是。后面全是零是不是,那然后我在在这个程序在拿到这个数的时候,他他把人数变成啥了。变成000,他一看前面是什么,前面是零,他就把这当做一个什么,当做一个正数了吧,它这个原法方法方法是一样,他就把这个直接直接给你输出了吧,是不是这就是这个问题出现的位置,呃,出现个方式,那怎么样去做呢?是在这里面解释和和那个什么和那个他解释应该差不多吧啊,你再看一遍啊啊。
01:19
那解溢出之后会导致一个问题,什么问题呢?这里面有程序,这程序咱们也做了啊,大家怎么操作的是比如说这是一个有括号的数据,那这个是呃,CH能表示的最大数应该多大呀?就这里面定义是一个差类型,这个值应该表示一个多大数啊。我们看一下啊,这CH这个是用16进制表示的是吧?啊,那个CH最多能表示多少个数啊,是八位啊八位能明白这个事吗?啊能明白那我写一下吧,还是在后面写一下啊是。CH,呃,AR。啊是一个差类型,差类型占占据乘自己的大小段,呃,是一个大B等于八个。
02:02
小B对应的如果值的应该是0000,然后0000是不是八倍啊,咱也别管这数多少,那你再看一下这个值为多少啊,这个值为这个是。0R7F,那这个对应的这个,如果7F是一个16进制数0X。7F,我们转换一下,转换一下这个进制应该转换成什么样。F应该是多少个15是不是8421是应该是几个一啊?四个一是不是,然后什么?然后这个是七的话,应该是零三个一,那将这个16进制转化为这个二进制,是不是应该这样的一个数啊,那前面这个咱先不考虑啊,这是这样的数,然后呢,这里面是一个有括号无符号的,有括号的有括号这个数我让他再加上一个二,那这个二的话应该二进制应该是一个什么样的值啊,正数法0000,然后是0061。0010是不是?我这俩数相加,看一下得结果为多少?首先最后这位是什么?是一零,然后是。
03:05
零啊,这俩数应该是怎么发生变化了吧,应该是零零,呃是零,然后是000,然后是几啊一,那我们计算机,计算机存的这个什么,存的这个这啊少了一个零,少了一个加上零,然后是空格价是不是存的这存的是一个这个这样的数了吧?啊这是一个什么,这是一个无码形式存在的,是不是计算你把它当做一个什么数啊负数,那负数情况应该怎么去操作呢?再转成什么,就转成原码是不是最高位是符号位,然后整体的数怎么着?呃,先减先减一吧,先减一,再取反是吧,减一变成啥样了,是1000,然后是0000,再取反一,然后是1111。啊,这个结果,这个结果是多少啊,负的127是不是这时候我们算的这个第一个结果是不是这个是负627,那我们看一下这个对不对啊,那们把它执行一下,这VI def应该是记了吧。
04:08
g.C啊,写一下对,省略inlu。LH,然后是文件。WHY?呃,差类型,然后是CH,然后是让CH等于0X7F再加二啊。然后哦,打印一下,这个值是PTF。你看下他那打印的时候按照什么打印呢?按照是百毛B打印的是不是,那这里面什么呢?就是就是第一个什么,第一个数据类型可以转成高的数据类型是不是,那这可以的啊,这是后面咱们讲的这个叫隐式转换这块了啊,这里面直接把这个CH输出,然后是rey return一个零的值保存一下啊,啊VI是。g.C。
05:00
啊很好,呃,下面开启,然后。保增价。GCC-of g g点。C,那执行一下这个什么,执行下这个G这个程序答应的是结果是多少啊,负得二七是不是,那如果这里面这个值如果加一的情况下,得到的结果应该是什么?负628是不是我们都知道那负这是这是什么,这是有括号,这个最大值加一就变成最小那个值了是不是,然后再加二就是怎么就变成负二七了吧?然这样的结果,那看一下后面这几个我们就不演示了,我们看一下能否看懂啊,当当然咱们这个课后也有这个练习习,也有相关练习习,我们看一下。啊,这里面是一个无符号的什么呀。无号的类型是吧,五号类型情况下可以定义这个2 F2F情况下就应该是什么了,就应该是多少个一了。呃,0X0XFM,然后它的结果应该是1111,然后一一,因为没有符号,所以说这个里面这个就是正数是不是啊,正数原码和码方码都一样是不是,然后这里面操作怎么操作,是让他加了一个什么呀,加了个一是不是。
06:07
然后这个数整体数加,加一个什么,加上一个什么样的值呢?诶诶。好,再加上一个是00000001,是不是加上这个结果,得到结果变成啥了,现在是100000000,然后最高位括号位,呃,不是不是,最高位是溢出了,因为没有括号位,所以把这个当做一什么当做一个零,那输出出下来是不?得到结果为多少?得到结果为这个是。零是不是这个结果为零啊,啊,后面会有这个值啊,然后再看下一个,下一个是。呃呃,同样这个是什么?这个是有负号无符号的,无符号啊,无符号的让加二是不是变成这个是变成几了,这个是结果变成一了是不是啊一这样的结果啊,这是我们看看到这一块啊,这是呃溢出的问题。
我来说两句