zoukankan      html  css  js  c++  java
  • 浅析各种数据类型的取值范围 void

    每次在用的时候对数据类型范围很模糊,到底会不会溢出,该不该用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却可以通过

     

  • 相关阅读:
    搭建本地源
    shell中tar加密打包
    mysql出现ERROR 1819 (HY000)的解决方法
    mysql 创建用户及授权(2)
    mysql 创建用户及授权(1)
    Redis 工具 redis-port 使用
    mysql中 drop、truncate和delete的区别
    dlerror和dlclose用法
    dlsym用法
    dlopen用法
  • 原文地址:https://www.cnblogs.com/void/p/2016604.html
Copyright © 2011-2022 走看看