Chinaunix首页 | 论坛 | 博客
  • 博客访问: 365421
  • 博文数量: 76
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2363
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-21 22:30
文章分类
文章存档

2014年(38)

2013年(38)

分类: Java

2014-02-14 10:43:22

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) |
给主人留下些什么吧!~~