栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

byte溢出

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

byte溢出

目录

题目

分析


题目

分析此代码的结果

分析 1.报错

byte类型无法直接相加减,当出现运算时,会默认将其转化为int类型数据

public static void main(String [] args){
	byte b1= 67; 
	byte b2= 89;
	System.out.println(getType(b1+b2));
}

//定义一个返回数据类型的函数
private static String getType(Object a) {
    return a.getClass().toString();
}

输出:class java.lang.Integer

可以看出byte类型的b1、b2相加得到的结果是int类型的。图中b3定义的byte类型,所以报错

2.改正

①将b3改为int类型

public static void main(String [] args){
    byte b1= 67; 
    byte b2= 89;
    int b3=b1 + b2;
    System.out.println(b3);
}

输出:156

②将b1+b2强制转换为byte类型

public static void main(String [] args){
    byte b1= 67; 
    byte b2= 89;
    byte b3=(byte)(b1 + b2);
    System.out.println(b3);
}

输出:-100

原因:byte类型数据的取值范围是-128~127,溢出后作用效果相当于-128~127构成闭环数据(实际上是二进制转换的问题)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/756038.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号