// 十进制转十六进制 Integer.toHexString(int i) // 十进制转八进制 Integer.toOctalString(int i); // 十进制转二进制 Integer.toBinaryString(int i); // 十六进制转十进制 Integer.valueOf("ffff",16).toString(); Integer.parseInt("27",16); // 八进制转十进制 Integer.valueOf("376",8).toString(); Integer.parseInt("376",8); // 二进制转十进制 Integer.valueOf("0101",2).toString(); Integer.parseInt("0101",2);
long lang=64509;
String str1=Long.toBinaryString(lang);//将给定的数转为二进制字串
String str2=Long.toBinaryString(~lang);//将给定的数取反转为二进制字串
//将取反后的二进制串取最后的 长度与第一个串长度相等 的子串,这是我们需要的二进制串
String str=str2.substring(str2.length()-str1.length());
//将它转换为十进制整数
int i=Integer.parseInt(str, 2);
System.out.println(i);