Java—类型转换

本文详细介绍了Java中的类型转换,包括隐式类型转换(如byte、short、char自动转int)和强制类型转换。在强制转换时,大范围数据类型转小范围可能导致数据截断,例如int转byte时若超出byte范围,数据会改变。同时讨论了在强制转换截断后是否可以取模操作的问题。
摘要由CSDN通过智能技术生成

Java—类型转换

在进行运算时,不同类型的数据是不能直接进行运算的;而在Java中,当我们对数据应用数学运算符时,有两种类型转换——1.隐式类型转换 2.强制类型转换

在看本篇文章前,可尝试完成下面这到题:

char a = 'A';
float b = 1.0f;
long c = 12;
数据类型 d = a + b + c;

Q:该数据类型是?
A. char     B. float     C. long     D. int
Q:d等于多少?
A. "A1.of12"     B."A13"      C.78      D.78.0
(答案在本文最后)

一.隐式类型转换

隐式类型转换,也称自动类型提升
隐式转换:自动将小范围数据,转换为大范围数据(自动完成转换,不需要人为转换);由小到大

1. 转int

隐式转换时:不足4字节的数据类型,会转化为int类型
即,1字节的byte,2字节的short 和 char,进行运算时均会转换为int类型(boolean类型不会参与)
在这里插入图片描述
举例:
在这里插入图片描述

Q:表示整数的byte 和 short 类型转换为int类型可以理解,但表示字符的char,如何转换为int?
A:ascall码表
在这里插入图片描述

二. 强制转换

强制类型转化:将大范围的数据类型转化为小范围的数据类型
代码展示

long a = 123L;
int b = (int) a;

System.out.println(b); // 123

Q:既然强制类型转换是大范围转小范围,那么如果数据大于小范围的最大值,会怎样处理?
A:数据在计算机中都是以二进制补码的方式进行存储,会发生截断,只截取后八位

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值