当前位置:C++技术网 > 精选软件 > C++ Primer Plus 6th 3.6 复习题 第1题 为什么C++有多种整型

C++ Primer Plus 6th 3.6 复习题 第1题 为什么C++有多种整型

更新时间:2019-02-15 11:30:22浏览次数:1+次

C++ Primer Plus复习题3.6 第一题  C++有多种整型

题目:
1.为什么C++有多种整型?

答案:有多种整型类型,可以根据特定需求选择最合适的类型。例如,可以使用short来存储空格,使用long来确保存储容量,也可以寻找可提高特定计算的速度的类型。

C++技术网辅导详解解答:
    要回答这个问题,我们需要从多种整型的区别来着手分析。
    整型类型一共分为哪些: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个字节,距离也变远了。具体内部如何寻址的,这个自然影响不是很大,毕竟现在的硬件非常强了。只是用来去理解不同类型的差别,所以挖掘一下,促进理解。