东莞市盛裕绒艺玩具有限公司

东莞市盛裕绒艺玩具有限公司

优德体育官方注册页面

18579111216
联系方式
全国服务热线: 18579111216

咨询热线:18859377985
联系人:骆吉
地址:西关十字

数据溢出

来源:优德体育官方注册页面   发布时间:2019-11-27   点击量:473

基本数据类型

基本数据类型分两大类:

    整型浮点型
整型包括char,short,int,long,long long除此之外,整型还有无符号类型unsigned ...浮点型包括float,double,long double

规则:short至少16位,int至少和short一样长;long至少32位,至少和int一样长;long long至少64位,至少和long一样长。float至少4个字节;double至少6个字节,并且不少于float;long double至少和double一样长。

数据范围

不同的系统环境,数据范围有所不同;32位/64位操作系统,数据范围也有所不同。可以通过代码来确定不同的范围:

    c语言定义了一系列的宏

#include <stdio.h>#include <limits.h>int main(){ printf("max integer: %d", INT_MAX); printf("min integer: %d", INT_MIN); return 0;}

    C++ 数值极限

#include <iostream>#include <limits>int main(){ std::cout << numeric_limits<int>::max() << endl; std::cout << numeric_limits<int>::min() << endl; return 0;}

数据类型应用

介绍个亲身遇到的数据溢出的问题。

    数据压缩后还原导致溢出

int d = 0;long value = d * 1000 + 10;

上面一段代码就有发生数据溢出的可能。当变量d足够大时,再乘以1000就会溢出。结果可想而知,是一个相对小的数值。

//可以这样改写,就不会出现问题long value = (long)d * 1000 + 10;C/C++基本数据类型,每一种都有范围。在选择数据类型要注意合适的范围,否则会造成数据溢出,产生难以发现的bug。

相关产品

COPYRIGHTS©2017 优德体育官方注册页面 ALL RIGHTS RESERVED 备案号:473