【Dev-C++】C++的数据类型的范围及所占字符数

前言

C++中有很多数据类型,如int,double,char……今天,我们就去看一看这些数据类型

 0.unsigned和signed

unsigned(无符号型)和signed(有符号型)是两个不同的关键字,它们可以被理解为前缀

unsigned 关键字的用法:

unsigned + typename + name;
//即unsigned + 类型名 + 变量名;

加入unsigned后,变量的最大值就扩大了一倍,但最小值变为0了

如:int大小为-pow(2,31) ~ pow(2,31)-1,unsigned int大小为0 ~ pow(2,32)-1

signed关键字的用法:

signed + typename + name;
//即signed + 类型名 + 变量名;

其实加不加signed都差不多,但要记住,signed 加不加是两个不同的数据类型

1.整形

整形的关键字:short,int,long;

1.1短整型

短整型分为:short,signed short,unsigned short

范围分别是:

short,signed short == -2^15 ~ 2^15-1 == -32768 ~ 32767

unsigned short == 0 ~ 2^16-1 == 0 ~ 65535

1.2普通整形

普通整形分为:int,signed int,unsigned int

int,signed int == -2^31 ~ 2^32-1 == -2147483648 ~ 2147483647

unsigned int == 0 ~ 2^32-1 == 0 ~ 4294967295

1.3长整形

长整形与系统有关,32位和64位系统中长整形的范围都不一样

1.3.1 32位系统

long,signed long == -2^31 ~ 2^32-1 == -2147483648 ~ 2147483647 == int,signed int

unsigned long == 0 ~ 2^32-1 == 0 ~ 4294967295 == unsigned int

1.3.2 64位系统

long,signed long == -2^63 ~ 2^63-1 == -9223372036854775808 ~ 9223372036854775807

(等同于long long,signed long long)

unsigned long == 0 ~ 2^64-1 == 0 ~ 18446744073709551615 == unsigned long long

注:64位的unsigned long虽然有值,但在Dev中输出为0

1.4超长整形

超长整形分为:long long,signed long long,unsigned long long

long long,signed long long == -2^63 ~ 2^63-1 == -9223372036854775808 ~ 9223372036854775807

unsigned long long == 0 ~ 2^64-1 == 0 ~ 18446744073709551615

注:unsigned long long虽然有值,但在Dev中输出为0

1.5 __int64

__int64,signed __int64 == -2^63 ~ 2^63-1 == -9223372036854775808 ~ 9223372036854775807

unsigned __int64 == 0 ~ 2^64-1 == 0 ~ 18446744073709551615

2.浮点型

浮点型的关键字:float,double,long

而它们一般都为有符号(即signed)类型

float == 1.17549e-038 ~ 3.40282e+038

double == 1.79769e+308 ~ 2.22507e-308

long double == 1.18973e+4932 ~ 3.3621e-4932

3.布尔型

bool类型比较特殊,它不分有无符号

bool类型的值只有0(false)和1(true)

所有非0整数(负数也算)和true在bool类型中都是真,0和false在bool类型中都是假

4.字符型

字符型包括普通字符型char和宽字符

4.1 char

char,signed char == -128 ~ 127

unsigned char == 0 ~ 255

char类型表面上存储的是一个字符,但实际在内存里存储的是一个ASCLL码值

关于ASCLL码和char的关系,小编在这里贴一张图:

4.2 wchar_t

中文这些占两个字符宽度的字符无法用char类型来存储,所以C++创造了宽字符wchar_t型,专门用来存储占两个字符宽度的字符。

因为小编对wchar_t不太了解,所以有感兴趣的自己去查>:)

各数据类型占用的字节数(sizeof函数)

sizeof()函数能帮助我们找出各类型占用的字节数,其用法为:

sizeof ( typename ) or sizeof typename

以下是各类型对应占用的字节数:

int4
short2
long4 or 8
long long8
float4
double8
bool1
char1
wchar_t2
__int648
long double16

古德拜~

  • 18
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值