java里面将long类型的数据转换成无符号的int数据方式如下:
一、强制类型转换
long ll = 300000;
int ii = (int)ll;
二、调用intValue()方法
long ll = 300000;
int ii= new Long(ll).intValue();
三、先把long转换成字符串String,然后在转行成Integer
long ll = 300000;
int ii = Integer.parseInt(String.valueOf(ll));
你的代码有问题,Integer.MAX_VALUE+100就超过int的上限了就变成负数了。需要转成long类型再加
测试代码如下:
package test;
import java.math.BigInteger;
public class TestConverter {
public static void main(String[] args) throws Exception{
String longMax = new Long(Long.MAX_VALUE).toString();
System.out.println("longMax=["+longMax+"]");
String intMax = new Long(Integer.MAX_VALUE).toString();
System.out.println("intMax=["+intMax+"]");
String longTemp = new Long(Long.parseLong(intMax)+100).toString();
System.out.println("longTemp=["+longTemp+"]");
BigInteger aa = new BigInteger(longTemp);
System.out.println("aa=["+aa+"]");
}
}
首先你要保证你的long数据是 数字类型的,要不然会报转化错误。
int i=3;Long l;long l2;//1.把int基本类型数据 转换为包装类Long类型对象l=new Long((long)i);//2.把int基本类型数据 转换为long基本类型数据l2=(long)i;
int unsignedBB = new Long(aa).intValue();
return unsignedBB;
int unsignedBB = new Long(aa).intValue();