Dev-C++5.11下各个数据类型占用的字节大小

1.各个数据类型占用字节大小

#include<iostream>
using namespace std;
int main(){
	cout<<sizeof(char)<<endl;      //1个字节,-128~+127         -2^7~2^7-1 
	cout<<sizeof(short)<<endl;     //2个字节,-32768~32767     -2^15~2^15-1 
	cout<<sizeof(int)<<endl;       //4个字节,-2147483648~2147483647  大概21亿左右, -2^31~2^31-1 
	cout<<sizeof(long)<<endl;     //32位的为4个字节,用g++编译器会变成8个字节 
	cout<<sizeof(float)<<endl;    //4个字节 
	cout<<sizeof(double)<<endl;   //8个字节 
	cout<<sizeof(long long)<<endl; //8个字节 
	cout<<sizeof(__int64)<<endl;   //8个字节 
	cout<<sizeof(__int128)<<endl;  //16个字节 
	
	return 0;
} 

在这里插入图片描述

2.float和double能表示数的范围大小和精度

###范围

  • 单精度浮点数
    由于指数采用移码存储,全部为正数表示范围的大小0255,所以存储的时候需要在实际指数的基础上加上127(不加128的原因可以网上参考下,可以理解为一种规定),因此在这里浮点数指数实际范围大小为==-127+128==,很多人容易与补码搞混以为指数表示范围是==-128~+127==,这点需要注意下。插入图片描述
    注:由于指数采用移码存储,全部为正数,表示范围的大小为0~255,所以存储的时候需要在实际指数的基础上加上127(不加128的原因可以网上参考下,可以理解为一种规定),因此在这里浮点数指数实际范围大小为==-127 ~ +128==,很多人容易与补码搞混以为指数表示范围是==-128~+127==,这点需要注意下。

  • 双精度浮点数
    表示与单精度浮点数基本类似,s(符号位),e(指数位),f(尾数位数)分别为1,11,52位。

float的范围为==-2^128 ~ +2^128==,也即3.40E+38 ~ +3.40E+38;double的范围为==-2^1024 ~ +2^1024==,也即==-1.79E+308 ~ +1.79E+308==。

###精度
float和double的精度由尾数的位数决定,float尾数为23位,能表示的大小为2^23=8388608,共七位,因此能表示
的精度为6 ~ 7位有效数字。同理double能表示的精度为15 ~16位有效数字。

[对于浮点数指数表示范围为-127~+128不清楚的可以参考下这里]
https://blog.csdn.net/abcdu1/article/details/75095781
https://blog.csdn.net/i6223671/article/details/88312191
https://blog.csdn.net/shenziheng1/article/details/79471340

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值