本帖最后由 hkylp 于 2012-7-13 12:24 编辑
H:\资料\问题/*获取一个数的十六进制表现形式。
步骤:
1、定义一个方法用于获取一个数的十六进制表现形式
1、先将该数的二进制数与15的二进制数做&运算;获取最低四位
2、将该数的二进制字节码右移四位再与15的二进制数做&运算,再获取四位。
3、如果值大于9,则用该数减去10,把结果当做数组的角标指向数组
*/
package cn.itcast.day01;
public class JavaBaseGrammerTest01 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] arr={"a","b","c","d","e","f"};
getToHex(arr,60);
}
//定义一个方法用于获取一个数的十六进制的每一位数
public static void getToHex(String[] arr,int numbers){
while(numbers!=0){
int number=numbers&15;
numbers=numbers>>4;
getToHex(arr,numbers);//运用递归
if(number>9){
int x=number-10;
System.out.println(arr[x]);
}
else
System.out.println(number);
}
}
}
为什么打印结果是:3c3?感觉没错呀,附上我的图解,问题出在哪里呀?
|
|