浅析各种数据类型的取值范围

每次在用的时候对数据类型范围很模糊,到底会不会溢出,该不该用long long之类的,这次找了相关资料给总结下

  1. char 1 -128到126   
  2.  
  3. unsigned char 1 0到255   
  4.  
  5. short 2 -32,768到32,767   
  6.  
  7. unsigned short 2 0到65,535   
  8.  
  9. long 4 -2,147,483,648到2,147,483,648   
  10.  
  11. unsigned long 4 0到4,294,967,295   
  12.  
  13. int 4 同long   
  14.  
  15. unsigned int 4 同unsigned long   
  16.  
  17. float 4 1.2E-38到3.4E381   
  18.  
  19. double 8 2.2E-308到1.8E3082     
  20. bool 1 true或false  
  21.  long long   [int]        64        0 ~ 2^64-1 =18,446,744,073,709,551,616  所占20位左右

从上表可以看出,int与long相同。那么,为什么C++还要区分这两种数据类型呢?实际上这是个遗留问题。在16位编程环境中,int要求2个字节而long要求4个字节。而在32位编程环境中,这两种数据都用4个字节存放

 

还有浮点型的强制转换int舍弃小数部分,如果保留有效位的话可以四舍五入

 

 

long long 的数据已经达到了20位的整数,所以大部分情况下可以处理大数,但是还要顾及时间复杂度,float和double更大了

 

long long在某些oj的g++编译器并不支持,提示wa,但是gcc却可以通过

 

原文链接: https://www.cnblogs.com/void/archive/2011/04/15/2016604.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    浅析各种数据类型的取值范围

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/24067

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 上午1:55
下一篇 2023年2月8日 上午1:55

相关推荐