今天看了毕老师的视频,关于“位运算符”的练习,提到了用位运算符把二进制转换成十六进制的程序编写。
视频上仅仅演示了原理,并没有把完整的程序写出来,所以我自己编写了一下代码,运用自己已经掌握的Java知识实现了这个功能。
用60作为演示例子,得出结果是:0000003C;改为-60后,得出结果是:FFFFFFC4。
public class binToHex {
/**
* 本程序练习二进制位移方式,把二进制转换成十六进制
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//定义需要转换的变量,十进制
int num=60;
char[] numHex=new char[8];
//循环由后向前每4位二进制取出一个16进制
for(int n=0;n<8;n++){
//用&运算取出num变量的最后四位 的值
int temp=num & 15;
if(temp>9){
temp=temp-10+'A';
numHex[n]=(char)temp;
}else{
temp=temp-1+'1';
numHex[n]=(char)temp;
}
num=num >>>4;
}
String result ="" + numHex[7] + numHex[6] + numHex[5] + numHex[4] + numHex[3] + numHex[2] + numHex[1] + numHex[0];
System.out.println(result);
}
}