A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 潘际昌 中级黑马   /  2013-11-26 22:05  /  1266 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

求大手指点下 怎么把byte提升为int型

4 个回复

倒序浏览
本帖最后由 HAnG 于 2013-11-26 22:16 编辑

在前面写个(int)就行了
byte b = 5;
int i = (int)b;



回复 使用道具 举报
由于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需要七位,所以就不能进行转换了

希望可以对你有帮助

评分

参与人数 1黑马币 +3 收起 理由
FFF + 3 今日加分已达到上限!请明天再努力哦!.

查看全部评分

回复 使用道具 举报
我想了想,是这么写的。
  1. class test {
  2.       public static void main(String[] args) {
  3.              Byte b = (byte) 1;
  4.              int a = b.intValue();
  5.              System.out.println(a);
  6.       }
  7. }
复制代码


注意,写成 Byte b = (byte) 1;
和写成 byte b= 1;是不一样的。Byte 是基本数据包装类,是将基本数据byte包装成对象的类。而byte是一个基本数据类型。写成byte是不能调用intValue方法的。只有写成Byte才能调用这个方法。
我的代码的意思是将Byte类型的b强制转换成byte,所以b是byte类型的。
然后调用intValue方法将byte类型的b装换成int型。应该是符合了你的题目要求。

评分

参与人数 1黑马币 +6 收起 理由
FFF + 6 鼓励分!

查看全部评分

回复 使用道具 举报
貌似我弄的比较深奥了,楼上几位的说法也挺对的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马