package com.zeng;
import java.util.Scanner;
/**
* 16进制转化为二进制
* 二进制在反转后再得到16进制
* 如1111 二进制0001000100010001,反转1000100010001000
* 得到16进制 8888
*/
public class Main04 {
/**
* @param args
*/
public static void main(String[] args) {
try{
Scanner in=new Scanner(System.in);
String str=in.next();
System.out.println(get(str));
}catch(Exception e){
e.printStackTrace();
}
}
public static String get(String str){
String ss="0123456789ABCDEF";
char[] ch=str.toCharArray();
for(int i=0;i
if(!ss.contains(String.valueOf(ch[i]))){
return "输入的16进制是错误的";
}
}
int x=Integer.valueOf(str,16);//16进制转化为10进制
String y=Integer.toBinaryString(x);//将x转化为二进制
StringBuffer sb=new StringBuffer();
if(y.length()%4!=0){
//把0补齐
for(int i=0;i<4-y.length()%4;i++){
sb.append("0");
}
}
sb.append(y);
sb.reverse();//对二进制进行反转
int z=Integer.valueOf(sb.toString(),2);//2进制转化为10进制
String result=Integer.toHexString(z);
return result;
}
}
阅读(4147) | 评论(0) | 转发(0) |