各位大神,为什么DOS显示不了16进制的字母,居然显示λ这些符号或者?,我看毕老师的视频显示正常,为什么自己联系就出现这个问题呢?
/*需求:十进制-->十六进制。
&15 >>>4 循环
遇到问题:
1,顺序反了。2,去除多余的0.
*/
//解决方法:
//1.每运算出一位,不要打印,先存储起来。这时候就需要容器(数组)。
class ArrayTest5{
public static void main(String[] args){
int num=60;
String str_hex=toHex(num);
System.out.println(str_hex);
}
public static String toHex(int num){
char[] chs=new char[8];//2.定义一个容器。存储的是字符,长度为8。
int index=chs.length-1; //3.定义一个用于操作的索引。
for(int x=0;x<8;x++){
int temp=num*15;
if(temp>9){
chs[index]=((char)(temp-10+'A'));
}
else{
chs[index]=((char)(temp+'0'));
}
index--;
num=num>>>4;
}
for(int x=0;x<chs.length;x++){//4.对数组进行遍历。
System.out.print(chs[x]+";");
}
return "0x"+toString(chs);
}
public static String toString(char[] arr){//5.定义一个可以把字符转换成字符串的方法。
String temp="";
for (int x=0;x<arr.length ;x++)
{
temp=temp+arr[x];
}
return temp;
}
}
|