布尔型变量:有两个逻辑值,1=ture,0=false,其定义及赋值方法如下:
bool a;
a=true;
讨论:在第2行中,也可用a=1;进行赋值。
字符型变量:
1)字符:指计算机中的字符集——ASCII码
一个字符占位一个字节,一个字节含8位,因此在定义一个字符型变量时,系统会为该变量分配一个字节的内存空间。
在二进制中,最大的数字为11111111,换算成十进制是255,因此字符型变量可存储256个字符。
在ASCII码中,最高位为奇偶校验位,用于检验字节中1的个数。
字符型变量的定义及赋值方法如下:
char a;
a='0';
注意:在上面的定义中,单引号引起来的变量用于给字符型变量赋值;‘0’表示一个字符,其ASCII码值为48,ASCII码值的输出语句如下:
cout<<(int)a;
该语句用于将字符型变量a强制转化成整形变量a输出
2)特殊字符:
'\a':铃声 '\b':回退 '\f':换页 '\n':换行 '\r':回车 '\t':Tab制表 '\v':垂直制表 '\'':单引号 '\''':双引号 '\?':问号 '\\':反斜杠
双字节型变量:
一个汉字需要占用两个字节,因此需要用双字节型变量表示,其定义和赋值方法参考下面程序:
#include<iostream>
#include<locale>
using namespace std;
int main()
{
setlocale(LC_ALL,"chs");
wchar_t a[]=L"我";
wcout<<a<<endl;
return 0;
}
输出结果:我
第2行和第6行:引入一个库,将本机的语言设置为中文简体
整型变量:整型变量的种类包括无符号型、有符号型、长整型和短整型,定义形式如下表:
数据类型 | 定义方法 | 大小(字节) | 取值 |
无符号整型 | unsigned a | 4 | 0~4294967395 |
有符号整型 | int a | 4 | -2147483648~2147483647 |
无符号长整型 | unsigned long a | 4 | 0~4294967395 |
有符号长整型 | long a | 4 | -2147483648~2147483647 |
无符号短整型 | unsigned short a | 2 | 0~65535 |
有符号短整型 | short a | 2 | -32768~32767 |
说明:①有符号可以表示负数(最高位表示符号位,1为负数,0为正数),而无符号只能表示正数
②负数在计算机中采用“补码”的形式表示。
例:以有符号短整型为例,推导其取值范围,注意第一位是符号位:
最大值:0 111111111111111 -> 32767
最小值:先考察 1 000000000000001,其补码形式为1 111111111111111,对应-32767
而实际最小值是1 000000000000000,故最小值对应-32768
浮点型变量:包括三类,具体的定义及取值如下表:
数据类型 | 定义方法 | 大小(字节) | 取值 |
浮点型 | float a | 4 | 10^(-37)~10^(38) |
双精度浮点型 | double a | 8 | 10^(-307)~10^(308) |
双精度长浮点型 | long double a | 16 | 10^(-4931)~10^(4932) |
说明:float的精度为6~7位,double的精度为15~16位,事实上,可以自定义输出的精度,参考下面的程序
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
float a=1.34534;
cout<<setprecision(3)<<a<<endl;
return 0;
}
输出结果:1.35
分析:第7行中使用了头文件iomanip中的setprecision函数,用于设定输出结果的有效位数。