//仅作为学习记录
class ArrayTest
{
public static void main(String[] args)
{
int num = 6;
System.out.print("toBin(6)=");
toBin( num );
System.out.print("toBin(60)=");
System.out.println(Integer.toBinaryString(60));//调用系统的函数将十进制数直接转换为二进制数
System.out.print("toHex(60)=");
toHex(60);//3C
System.out.print("toHexByTable(60)=");
toHexByTable(60);
}
public static void toBin( int num){//将十进制数转换为二进制数
StringBuffer sb = new StringBuffer();
while( num > 0 ){
sb.append(num%2);
num /=2;
}
System.out.println(sb.reverse());//将存入容器中的字符串逆置
}
static void toHex( int num){//将十进制数转换为十六进制数
StringBuffer sb = new StringBuffer();
//for(int x=0; x < 8 ; x++){
while( num > 0){
int temp = num & 15; //与1111 进行 与 运算
if( temp > 9 )
//System.out.println( (char)(temp - 10 + 'A'));
sb.append((char)(temp - 10 + 'A'));
else
//System.out.println(temp);
sb.append(temp);
num = num >>>4; //右移4位
}
System.out.println(sb.reverse());
}
//通过查表法
public static void toHexByTable( int num ){
char []chs ={'0','1','2','3',
'4','5','6','7',
'8','9','A','B',
'C','D','E','F',};
char [] arr = new char[8];
int pos=0;//来标记有效位
while( num > 0){
int temp = num & 15;
arr[pos++] = chs[temp];
num = num >>> 4;
}
for( int x =pos-1 ; x>=0 ; x--){
System.out.print(arr[x]);
}
System.out.println();
}
}