黑马程序员技术交流社区
标题:
类型提升问题
[打印本页]
作者:
潘际昌
时间:
2013-11-26 22:05
标题:
类型提升问题
求大手指点下 怎么把byte提升为int型
作者:
HAnG
时间:
2013-11-26 22:13
本帖最后由 HAnG 于 2013-11-26 22:16 编辑
在前面写个(int)就行了
byte b = 5;
int i = (int)b;
作者:
王贺
时间:
2013-11-26 22:30
由于byte在java里占1个字节,int在java里占4个字节,int的值范围比byte的大,所以在byte转换为int时会自动转换,当然你也可以强制转换,byte b=2; int t=b;//或者是int t=(int)b;
在int转换为byte,就应该考虑范围了,如果数值大肯定也就溢出了。
举个例子 比如 byte为0000四位,int为00000000八位吧,
byte b=1010;
int t=b;//这时候t=00001010;
如果int t=01001010;
byte b=t;//这时候因为byte四位,而t需要七位,所以就不能进行转换了
希望可以对你有帮助
作者:
樊志伟
时间:
2013-11-26 22:34
我想了想,是这么写的。
class test {
public static void main(String[] args) {
Byte b = (byte) 1;
int a = b.intValue();
System.out.println(a);
}
}
复制代码
注意,写成 Byte b = (byte) 1;
和写成 byte b= 1;是不一样的。Byte 是基本数据包装类,是将基本数据byte包装成对象的类。而byte是一个基本数据类型。写成byte是不能调用intValue方法的。只有写成Byte才能调用这个方法。
我的代码的意思是将Byte类型的b强制转换成byte,所以b是byte类型的。
然后调用intValue方法将byte类型的b装换成int型。应该是符合了你的题目要求。
作者:
樊志伟
时间:
2013-11-26 22:36
貌似我弄的比较深奥了,楼上几位的说法也挺对的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2