C++中不同的整型变量类型

1、整型  

   不同的C++整型使用不同的内存量来储存整数。使用的内存量越大,则可以表示整数的范围也就越大。另外,有的类型(符号类型)可以表示数值的正负,而有的类型(无符号类型)却不能表示负值。术语宽度用来表示储存整数是使用的内存量。宽度越大,所占内存也就越大。这里按照宽度大小依次从小到大排序为char,short,int,long int以及C++11新加的long long int.每种类型都分为有符号类型和无符号类型,一共是十种类型可供选择。这里由于char类型的特殊性,放在以后再讲,这里先介绍其他类型。

2、整型short,int,long,long long

  计算机内存由一些叫做位(bit)的单元组成。C++的short,int,long,long lon类型通过使用不同数目的位来储存值,最多能储存四种不同宽度的值,这里由于不同的系统的原因,导致每个系统的宽度都不确定,所以不能确定这四种类型具体的宽度,不过借鉴C中的宽度,它确保了最小的宽度:

1)short值至少是16位

2)int至少与short一样长

3)long至少32位,且至少与int一样长

4)long long至少64位,且至少也long一样长

3、位与字节

  计算机的基本储存单元是位(bit).可以将位看做电子开关,可以开,也可以关,开就是1,关就是0,一个8位的内存块可以产生256种不同的组合,因为每一位都有两种设置,那么八位就是2*2*2*2*2*2*2*2,即256种。因此,8位单元可以表示0~255或者是-128~127.同理,16位单元能表示65536个不同的组合,32位单元能表示4294967296个不同的组合。64位则更大,long long的值大到能够储存当前地球上的所有人数和星星的个数。

  字节(byte)通常指的是8位的内存单元。从这个意义上说,字节指的就是描述计算机内存量的度量单位,1KB等于1024字节,1MB等于1024KB.然而C++对字节的定义与此不同,它描述的字节是一个字节至少能储存完整的基本字符集,也就是说字节的宽度至少要超过基本字符集的宽度,所以字节通常使用的都是8位,而在国际上有些系统的字节数更多,例如Unicode,故字节数要使用更大的位数。总而言之,位与字节都是描述计算机的内存度量,只需要弄清楚各个类型的储存宽度即可。

4、检索各类型的长度

既然由于系统的原因,使得各个系统的类型长度都不同相同,那么要如何知道在一个系统中的类型的具体长度呢?这样就要用到sizeof运算符了,它的基本单位是字节,有两种使用方法,一是通过传递不同的类型参数,它会返回类型的具体字节数,二是通过传递不同类型的变量从而返回其变量类型的字节数。其次是头文件climits,它定义了各种限制的符号名称。例如,INT_MAX为int的最大取值,CHAR_BIT则是字节的位数,下面是具体的示范

#include<iostream>
#include<climits>
using namespace std;

int main()
{
    int n_int=INT_MAX;
    short n_short=SHRT_MAX;
    long n_long=LONG_MAX;

    cout<<"int is "<<sizeof(int)<<" bytes."<<endl;
    cout<<"short is "<<sizeof(n_short)<<" bytes."<<endl;
    cout<<"long is "<<sizeof n_long<<" bytes."<<endl;

    cout<<" byte per bit = "<<CHAR_BIT<<endl;
    
}
    

int is 4 bytes.
short is 2 bytes.
long is 4 bytes.
byte per bit = 8

这就是以上代码运行的结果.此外要说明的是当使用sizeof运算符时,如果参数是类型名,则要使用括号,如果是变量名,括号可以省略。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值