试验了一下,可能是因为你的十进制数溢出造成的。
Integer.parse似乎只认你给的数为正数,所以,你的32位二进制,而且第一位是1是,就益出了Int的范围。
你可以考虑用Long来处理一下。
int xx = (int) Long.parseLong(jstr, 2);
System.out.println(xx);
System.out.println(Integer.toBinaryString(xx));
Integer.parse似乎只认你给的数为正数,所以,你的32位二进制,而且第一位是1是,就益出了Int的范围。
你可以考虑用Long来处理一下。
int xx = (int) Long.parseLong(jstr, 2);
System.out.println(xx);
System.out.println(Integer.toBinaryString(xx));
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货