C++数据类型基本类型篇

本文介绍了C++中的数据类型,包括基本类型(整型、浮点型、字符类型和bool)以及它们的变体,如short、int、long、longlong等,并讨论了整数的无符号版本和浮点数的存储机制。还提到了sizeof运算符和climits中的符号常量。
摘要由CSDN通过智能技术生成

引言

在编程过程中我们常会遇到要存储各种信息,例如:计算机专业总人数、重庆三月份的温度、圆周率等等。这是我们将会遇到这样的问题:

1.信息将存在哪里?

2.要存什么值?

3.存储何种类型的值?

面对这些问题我们首先要了解C++有哪些数据类型。

数据类型

C++中内置的数据类型主要分为基本类型和复合类型(这里主要讲基本类型)。其中基本类型包括整型和浮点型。这听起来很少,但C++知道,没有任何一种整型和浮点型能满足所有的编程要求,因此这两种数据类型,有多种变体。复合类型包括数组、字符串、结构、指针。

整型

整数就是没有小数部分的数字,如0,3,99999,-333。整数有很多,有些很大(大到无法用有限的计算机内存存储)有些则很小。面对这种情况,为了更合理的使用计算机内存,提高内存的利用率,C++提供了好几种整数类型,以便于程序员在编程时能根据自身需求选择最合适的整型。C++基本整型按宽度(用于描述存储整数时使用的内存量,内存量越大,宽度越宽)排序分别是char、short、int、long、long  long。其中每个符号都分为有符号和无符号版本。

整型short、int、long、long  long

计算机内存由一些叫作位(bit)的单元组成。C++的short、int、long、long  long类型通过使用不同数目的位来存值,最多能够表示4种不同的整数宽度。当然因为程序员在编程过程中使用的系统不同对应的类型所占的位数不尽相同。C++提拱了一种灵活的标准,它确保了最小长度:

1.short至少16位;

2.int至少与short一样长;

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

4.long long至少64位,且至少与long一样长。

提到位往往就会想到与之相连的字节(byte),它通常指的是8位的内存单元,即1byte=8bit。

在编程时可以使用C++提供的工具来获取对应类型的长度。首先时sizeof运算符,它返回的是类型或变量的字节长度。

#include<iostream>
using namespace std;
int main{
    int n_int;
    cout<<sizeof(int)<<" "<<sizeof(n_int)<<endl;//4 4
   return 0;
}

其次,头文件climits中定义了表示各种限制的符号名称。如INT_MAX为int的最大取值,CHAR_BIT为字节的位数。

无符号类型

前面提到的四种整型都有一种不能存储负值的无符号变体,这样可以增大变量能够存储的最大值。例如,如果short表示的范围是-32768到+32767,则无符号版本的表示范围为0-65535。当然,仅当数值不为负时才可以使用无符号类型,使用时只需要用关键字unsigned来修饰声明即可。

#include<iostream>
using namespace std;
int main{
    unsigned int rovert;
    unsigned quarterback;//unsigned本身是unsigned int的缩写
    unsigned long gong; 
   return 0;
}
 char类型:字符类型和小整数

char类型是专为存储字符而设计的。编程语言通过使用字母的数值编码来存储字母,因此,chart类型也是另外一种整型,是比short更小的整型,通常占8位。

#include<iostream>
using namespace std;
int main{
   char ch='a';
   int  c=ch;
   cout<<ch<<" "<<c<<endl;//a 97
   return 0;
}

​

代码中将字符用单引号括起的方法位字符的数值编码。

bool类型

bool类型的值可以是true和false。C++将非零值解释为true,将零解释为false。字面值true和false都可以通过提升转换位int类型,true被转换为1,false被转换为0。

浮点型

浮点数能够表示带小数部分的数字。主要有float、doubel和long double类型。

计算机在存储浮点类型时会将数据分为两部分存储。一部分代表值即基准,一部分用于对值进行放大或缩小即缩放因子。例如,34.1245和34124.5在存储时基准相同都是0.341245,缩放因子前者100,后者10000。

#include<iostream>
using namespace std;
int main{
   double ct=19.6;//标准小数点表示法
   double cu=3.45E6;//E表示法 3450000
   return 0;
}

第一次写博客实在是太难了,越到后面越浮躁,不过写完还是很有成就感的,希望这里的知识对大家有所帮助吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值