下面是一种方法..做法很直接,因为是对字符串的操作,所以效率不一定高
public static void main(String[] args) {
int num = 110;
String strNum = Integer.toBinaryString(num);// 切换为二进制表示
System.err.println(strNum);// 打印二进制表示
int size = strNum.length();
char[] chs = strNum.toCharArray();
for (int i = size - 4; i > size - 8; i--) {
chs[i] = '0';// 将4-7位逐位改为0
}
strNum = new String(chs);// 产生新数字
System.err.println(strNum);// 打印新数字
int newNum = Integer.valueOf(strNum, 2);// 将新数字转为十进制表示
System.err.println(newNum);// 打印新数字
}
附位运算方法:
public static int work(int num) {
// String temp = "1111111111111111111111110000111";
// int num2 = Integer.valueOf(temp, 2);
int num2 = 2147483527;
System.err.println(num2);
int result = num & num2;
return result;
}
最终返回结果就是计算的结果.
温馨提示:答案为网友推荐,仅供参考