自动类型转换

自动类型转换指的是容量小的数据类型可以自动转换为容量大的数据类型。如图所示,实线表示无数据丢失的自动类型转换,而虚线表示在转换时可能会有精度的损失。

自动类型转换(特例)

可以将整型常量直接赋值给byte、 short、 char等类型变量,而不需要进行强制类型转换,只要不超出其表数范围即可。

short  b = 12;  //合法
short  b = 1234567;//非法,1234567超出了short的表数范围

强制类型转换

强制类型转换,又被称为造型,用于显式的转换一个数值的类型。在有可能丢失信息的情况下进行的转换是通过造型来完成的,但可能造成精度降低或溢出。

1、语法格式:

(type)var

运算符“()”中的type表示将值var想要转换成的目标数据类型。

2、强制类型转换特例

当将一种类型强制转换成另一种类型,而又超出了目标类型的表数范围,就会被截断成为一个完全不同的值。

int x = 300;
byte bx = (byte)x;    //值为44

注意:

不能在布尔类型和任何数值类型之间做强制类型转换

基本类型转化时常见错误和问题

操作比较大的数时,要留意是否溢出,尤其是整数操作时。

1、常见问题一

int money = 1000000000; //10亿
int years = 20;
//返回的total是负数,超过了int的范围
int total = money*years;
System.out.println("total="+total);
//返回的total仍然是负数。默认是int,因此结果会转成int值,再转成long。但是已经发生//了数据丢失
long total1 = money*years;
System.out.println("total1="+total1);
//返回的total2正确:先将一个因子变成long,整个表达式发生提升。全部用long来计算。
long total2 = money*((long)years);
System.out.println("total2="+total2);

2、常见问题二

L和l 的问题:

不要命名名字为l的变量,l容易和1混淆。long类型使用大写L不要用小写。

int l = 2; //分不清是L还是1,
long a = 23451l;//建议使用大写L
System.out.println(l+1);

addressof表达式不能转换为long_基本数据类型转换相关推荐

  1. addressof表达式不能转换为long_C++入门到精通(七),数据类型的转换

    通常情况下,我们不会把东西乱放在箱子里,但是在某些特殊的情况下,只有一个小箱子,却要放进一个很大的东西,这该怎么办?乱塞是没有用的,那样只会把东西更难放进去.这个时候,我们需要把东西整理一下,去掉那些 ...

  2. addressof表达式不能转换为long_2.3 C++赋值运算符与表达式 | 将有符号数据赋给无符号...

    赋值运算符 小林在前面小结中有说过赋值符号=就是赋值运算符,它的主要作用是将一个值赋给一个变量. 比如,把常量5的值赋给变量x. x=5; 也可以把一个表达式的值赋给变量 int x; x=3+5*2 ...

  3. char强制类型转换为int_彻底理解Java中的基本数据类型转换(自动、强制、提升)...

    说基本数据类型转换之前,先了解下 Java 中的 8 种基本数据类型,以及它们的占内存的容量大小和表示的范围,如下图所示. 之前分享过<深入浅出 Java 中的包装类>,现在重新温故了下原 ...

  4. Java中的基本数据类型转换(自动、强制、提升)

    转载自 Java中的基本数据类型转换(自动.强制.提升) 说基本数据类型转换之前,先了解下 Java 中的 8 种基本数据类型,以及它们的占内存的容量大小和表示的范围,如下图所示. 重新温故了下原始数 ...

  5. Java基本数据类型的自动转换_彻底理解Java中的基本数据类型转换(自动、强制、提升)...

    说基本数据类型转换之前,先了解下 Java 中的 8 种基本数据类型,以及它们的占内存的容量大小和表示的范围,如下图所示. 重新温故了下原始数据类型,现在来解释下它们之间的转换关系. 自动类型转换 自 ...

  6. java 自动类型转换_彻底理解Java中的基本数据类型转换(自动、强制、提升)

    说基本数据类型转换之前,先了解下 Java 中的 8 种基本数据类型,以及它们的占内存的容量大小和表示的范围,如下图所示. 重新温故了下原始数据类型,现在来解释下它们之间的转换关系. 自动类型转换 自 ...

  7. java自动类型提升_Java中的基本数据类型转换(自动、强制、提升)

    说基本数据类型转换之前,先了解下 Java 中的 8 种基本数据类型,以及它们的占内存的容量大小和表示的范围,如下图所示. 重新温故了下原始数据类型,现在来解释下它们之间的转换关系. 自动类型转换 自 ...

  8. Java学习(4)—— 布尔类型、基本数据类型转换、基本数据类型和String类型的转换

    布尔类型 也叫Boolean类型,boolean只允许取true和false. boolean占一个字节. 适用于逻辑运算,流程控制语句. 有默认类型,是false.但是应该声明为成员变量或是静态变量 ...

  9. Java 基本数据类型转换

    Java 基本数据类型转换 目录 Java 基本数据类型转换 1.1自动类型转换 1.2 强制类型转换 在赋值运算或算术运算时,要求数据类型相同,否则就要进行类型转换. 转换的方式: 自动类型转换( ...

最新文章

  1. 2022-2028年中国顺丁橡胶行业发展模式分析及市场分析预测报告
  2. python切片语法-Python切片详解
  3. 数据分析:主成分分析(PCA)1
  4. erlang精要(22)-归集器、记录
  5. 浅谈.Net异步编程的前世今生----APM篇
  6. 【C语言简单说】七:自定义函数(3)
  7. 【PMP学习笔记】:二、项目运行环境
  8. python 基础 - 开发环境搭建
  9. devops开发运维一体化_进阶 | 中国电信系统集成公司:100% 应用 DevOps 理念,做好企业级行业应用...
  10. 常用的C#正则表达式! [转]
  11. linux小红帽实验心得,小红帽心得体会.doc
  12. BroadcastReceiver 用于接收广播
  13. iOS下载历史版本App教程
  14. 基于SSM车牌识别停车场管理系统
  15. Java的笔记开源软件_安装 MapGuide Open Source 2.0(Java版本)笔记
  16. caffe安装步骤(Anaconda,Windows10环境下)
  17. php库函数是什么,PHP常用库函数
  18. 标题:《东邪西毒》台词全本(国语版) (转)
  19. 基于语音的疲劳度检测算法研究
  20. ios状态栏,导航栏,工具栏,tab栏的位置,附图

热门文章

  1. html5学习笔记1
  2. vue项目持久化存储数据的实现代码
  3. 答疑:U盘突然无法识别了,数据还能恢复吗
  4. Java并发基础构建模块简介
  5. Spring component-scan类扫描加载过程
  6. day1 作业编写登录窗口
  7. Javascript 评估用户输入密码的强度
  8. golang interface 转 int string slice struct 类型
  9. linux shell 合并多个文件 并删除重复行
  10. node.js express项目搭建