写在前面:

  母语是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转换

隐式转换

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

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

C++11 Java基本数据类型以及转换的更多相关文章

  1. JAVA基本数据类型及其转换

    Java语言是一种强类型语言.这意味着每个变量都必须有一个声明好的类型.Java语言提供了八种基本类型.六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型.Java另外还提供大数字对 ...

  2. Java基础数据类型二进制转换

    前言: 本文主要介绍java基础类型的二进制转换和二进制的基本概念. 二进制: 1,二进制是以0和1为码,逢2进1,比如3=11=1*2+1. 2,在计算机当中其它进制的算法基本基于2进制,因为计算机 ...

  3. java的数据类型的转换

    一:java的数据类型转换除布尔类型boolean(不能转换)有两种:<一> 自动转换: <二> 强制转换 <一>.自动转换:就是将小的数据类型自动转换成大的数据类 ...

  4. java中数据类型的转换

    数据类型的转换,分为自动转换和强制转换. 自动转换是程序执行过程中“悄然”进行的转换,不需要用户提前声明,一般是从位数低的类型向位数高的类型转换 强制转换必须在代码中声明,转换顺序不受限制 自动数据类 ...

  5. Java中数据类型默认转换和强制类型转换

    默认转换: a:由低到高一次为:(byte   short    char  )---int ---long ---float --- double b:注意:byte   short    char ...

  6. Java基本数据类型之间转换

    一.自动类型转换 转换的过程自动发生规则:小——>大byte->short->int->long->float->double char类型识别为int,可以转成i ...

  7. java代码----数据类型的转换-----int --->String

    总结:int ----->String package com.a.b; //测试..char--->int // int--->String public class Yue2 { ...

  8. Java中几种常用数据类型之间转换的方法

    Java中几种常用的数据类型之间转换方法: 1. short-->int 转换 exp: short shortvar=0; int intvar=0; shortvar= (short) in ...

  9. Java数据类型的转换:隐式(自动)转换与强制转换

    原文链接:http://java.chinaitlab.com/base/725590.html 一些初学JAVA的朋友可能会遇到JAVA的数据类型之间转换的苦恼,例如,整数和float,double ...

随机推荐

  1. 【ORA】ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode

    ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode 这个问题是rman备份的时候,发现有问题 原因: 数据库没有开启归档 ...

  2. 【Oracle】更改oracle中的用户名称

    修改oracle中的用户名,要需要修改oracle基表中的相关内容, 1.查看user#, select user#,name from user$ s where s.name='用户修改前的'; ...

  3. let关键字:加强版的var关键字

    本文首发于个人网站:let关键字:加强版的var关键字 你好,今天大叔想和你唠扯唠扯 ES6 新增的关键字 -- let.再说 let 的具体用法之前,大叔想先和你说说大叔自己对 let 的感受 -- ...

  4. SVM 支持向量机算法-实战篇

    公号:码农充电站pro 主页:https://codeshellme.github.io 上一篇介绍了 SVM 的原理和一些基本概念,本篇来介绍如何用 SVM 处理实际问题. 1,SVM 的实现 SV ...

  5. 词嵌入之Word2Vec

    词嵌入要解决什么问题 在自然语言系统中,词被看作最为基本的单元,如何将词进行向量化表示是一个很基本的问题,词嵌入(word embedding)就是把词映射为低维实数域向量的技术. 下面先介绍几种词的 ...

  6. HTML基础复习2

    6.表格 6.1建立表格: 表格由<table></table>标签来定义 每行由<tr></tr>来定义,每行被分割为若干单元格,由<td> ...

  7. 【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据

    任务描述 本次集中介绍使用Windows和Linux()搭建本地Redis服务器的步骤,从备份的RDB文件中加载数据,以及如何生成AOF文件和通过AOF文件想已经运行的Redis追加数据. 操作步骤 ...

  8. JS实现植物大战僵尸小游戏,代码记录及效果展示

    前几天看到了一个很有趣的demo,用js制作植物大战僵尸小游戏,本着学习的心态,对照着做了一下,发现这里面的一些代码设计的确很精妙,这里分享下源码和效果,如果有需要,可以看下. 效果如下: 下载地址

  9. Py迭代和迭代器,生成器,生产者和消费者模型

    迭代器iter 1.迭代的含义: 每次生成的结果依赖于上一次.问路,先问第一个人,第一个人不知道他就说第二个人知道,然后去找第二个人.第二个人不知道就说第三个人知道,然后去找第三个人 2.递归的含义: ...

  10. USB2514集线器调试总结

    一般的MCU不会留有太多的USB口,但在实际项目中又会遇到需要很多个USB口的情况,这时就会用到USB集线器来扩展USB口了.USB2514这个芯片是我在工作中用的比较多的,但是问题很多,从来没有调稳 ...