亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

數據溢出

標簽:
C++

基本数据类型

基本数据类型分两大类:

  1. 整型

  2. 浮点型

  • 整型包括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位操作系统,数据范围也有所不同。

可以通过代码来确定不同的范围:

  1. c语言定义了一系列的宏

#include <stdio.h>#include <limits.h>int main(){    printf("max integer: %d\n", INT_MAX);    printf("min integer: %d\n", INT_MIN);    return 0;
}
  1. C++ 数值极限

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

数据类型应用

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

  1. 数据压缩后还原导致溢出

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

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

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

原文出处:https://www.cnblogs.com/zhugaopeng/p/9949890.html  

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消