• C++11 Java基本数据类型以及转换


    写在前面:

      母语是Java,后来学了C++11,这两个语言的基本数据类型隐式转换不太一样,有点晕,整理一下

      整理自网络和书籍,标明出处


     

    C++

    基本数据类型

    ——http://www.cnblogs.com/wangduo/

      整型

    • (signed) int

          格式说明符:d

          简写:int,long,signed

          4 个字节,32 位,取值范围:-231~231-1

    • unsigned int

          格式说明符:u

          简写:unsigned

          4 个字节,32 位,取值范围:0~232-1

    • (signedshort int

          格式说明符:hd

          简写:short

          2 个字节,16 位,取值范围:-215~215-1

    • unsigned short int

          格式说明符:hu

          2 个字节,16 位,取值范围:0~216-1

    • (signed) long int

          格式说明符:ld

          不同的平台有不同的规定

          一些是4字节,一些是8字节

    • unsigned long int

          格式说明符:lu

          不同的平台有不同的规定

          一些是4字节,一些是8字节

    • (signedlong long int

          格式说明符:lld

          简写:long long

          8 个字节,64 位,取值范围:-263~263 -1

    • unsigned long long int

          格式说明符:llu

          8 个字节,64 位,取值范围:0~264 -1

      浮点型

    • float

          格式说明符:f

          4 个字节,32 位,取值范围:3.4*10-38~3.4*1038

      双浮点型

    • double

          格式说明符:lf

          8 个字节,64 位,取值范围:1.7*10-308~1.7*10308

    • long double

          格式说明符:lf

          C标准没有详细规定,只说了sizeof(long double)>=sizeof(double)

      字符型

    • char

          格式说明符:c

          如果将中文存储在char中,会导致溢出而出现不可预期的字符如乱码,见[◹]字符集编码

          1 个字节,8位,取值范围:0~28-1

    • wchar_t

          不同的C或C++库有不同的规定

          4 或 8 个字节,16位或32位,取值范围:0~216-1 或 0~232-1

      字符串型

    • string

          格式说明符:s

          C++引入的string 类类型

          依据平台和编译选项的不同,最大容量会有变化

          大部分32位环境或者系统中,最大容量是0~232-1

      布尔型

    • bool

          格式说明符:没有!别乱用,小心某些平台爆炸

          1个字节,取 0 或 1

    隐式转换

      在混合类型运算,赋值,传参,返回时,会发生隐式转换

      基本原则:低精度 –> 高精度

    不知道图是谁做的,都传糊了

     

    ——http://www.runoob.com/cplusplus/cpp-data-types.html

    ——《信息学奥赛一本通》

     


     

    Java

    基本数据类型

    • byte

        1 个字节,8 位,取值范围:-128~127

    • short

        2 个字节,16 位,取值范围:-2^15~2^15-1

    • int

        4 个字节,32 位,   取值范围:-2^31~2^31-1

    • long

        8 个字节,64 位,取值范围:-2^63~2^63 -1

    • float

        4 个字节,取值范围:-3.403E38~3.403E38

    • double

        8 个字节,取值范围:-1.798E308~1.798E308

    • char

        在java中,字符天然就是unicode表示,所以char就天然的可以保持人类理解的char

        2 个字节,16位,取值范围:0~216-1

    • String

        在java的api中定义为char数组的形式

        依据平台和编译选项的不同,最大容量会有变化

        大部分32位环境或者系统中,最大容量是0~232-1

    • boolean

        1个字节,取 true 或 false

    不支持Unsigned无符号数据类型,但可以轻而易举的完成Unsigned转换

     

    隐式转换

      在混合类型运算,赋值,传参,返回时,会发生隐式转换

      基本原则:低精度 –> 高精度

     

     

  • 相关阅读:
    大爽Python入门教程 0-2 什么是IDE?python选什么IDE好?
    大爽Python入门教程 0-3 安装Atom与配置Python环境
    大爽Python入门教程 0-1 安装python
    HBase 过滤器 及shell 操作过滤器
    分布式ID生成方式(雪花算法)
    tidb 踩坑经验(转载)
    MYSQL ACID
    kafka什么时候会丢消息
    java 单例模式模式实现
    使用 GitHub 的十个最佳实践
  • 原文地址:https://www.cnblogs.com/Antigonae/p/10163748.html
Copyright © 2020-2023  润新知