首页 > 试题广场 >

为什么C++有多种整型?

[问答题]
推荐
有多种整型类型,可以根据特定需求选择最适合的类型。例如,可以使用short来存储空格,使用long来确保存储容量,也可以寻找可提高特定计算的速度的类型。
发表于 2018-05-07 10:56:07 回复(0)
有多种整型类型,可以根据特定需求选择最合适的类型。例如,可以使用short来存储空格,使用long来确保存储容量,也可以寻找可提高特定计算的速度的类型。

要回答这个问题,我们需要从多种整型的区别来着手分析。
    整型类型一共分为哪些:char(字节整数)、short 、int、long、long long
    这些整数类型都是存储整数数值,区别在于存储的数值范围,从左到右,存储的数值范围是从小变大。需要大范围的数值区间的时候,自然要用大范围的整型类型,如果完全用不着的,用着也浪费。而需要大范围的时候,用小范围的整型类型,是会导致数据丢失的。比如,char当做整型来用时,只有一个字节表示数据范围,一共有256个状态。如果你要表示爱你一万年,数字10000年,根本就存不下去。最后最多能表示爱你255年,从0开始表示。那就尴尬了哦。
    范围是一个因素,这是非常重要的原因。
    另外一个就是,计算性能。不同范围的类型呢,自然需要不同的字节来表示。字节越多,能够表示的范围就越大。如果你用一个超大范围,可能是8字节整型,仅仅表示100以内的数据,不仅浪费资源,而且会降低效率。假如CPU是32位,也就是4字节。1+1就是最多用两个地方存储数值,然后再计算。最后的结果还是32位即4字节的。如果你用8字节表示,32位CPU压根就没有办法一次性进行计算,所以要进行进一步处理,将64位的数值和64位数值进行特殊的计算呢,所以从最底层都会降低效率。用最简单的比喻就是,一只手只能拿一个苹果,两只手拿两个苹果,这两个苹果和直接进行比较和处理。64位就相当于两个大的苹果,一只手是拿不下的,可能就需要两只手一起捧着。先捧起第一个进行观察,然后再捧下一个,最后再将两个观察的结果进行对比,得出结果。而前面两个小苹果,直接拿着就可以看出来结果,压根不需要额外的步骤,所以更快更方便。
    另外,第三个就是存储性能。大的类型需要占用更多的内存空间,许多大的内存会消耗很多内存容量,比如一百万个int和一百万个long long所占的内存空间是差距很大的。存储性能不足也能降低处理性能,因为占用大量的空间,在寻找数据进行处理的时候,比如数组,则会跨越更多的内存区域。以前走一步4个字节,现在一下走8个字节,距离也变远了。具体内部如何寻址的,这个自然影响不是很大,毕竟现在的硬件非常强了。只是用来去理解不同类型的差别,所以挖掘一下,促进理解。
发表于 2019-03-13 07:44:02 回复(0)
事物总是有大有小的,数据也是,用合适的内存存储合适的数据,会节省内存空间并且提高运算速度。所以会存在多种整型
发表于 2019-10-31 10:10:34 回复(0)