①.、写转换函数是必须的,目前Jdk中无现有类.
二,遍历每个字符,用char来接收,实为int值,或直接用int也可以.
三,Integer.toHexString(每个字符对应的int值);
四,前缀加个"0x"就可以了.
不知可否解决问题了.
import java.util.Scanner;
/**
*
* @param bytes
* @return 将二进制转换为十六进制字符输出
*/
public static String BinaryToHexString(byte[] bytes){
String result = "";
String hex = "";
for(int i=0;ibytes.length;i◆◆){
hex ◆= String.valueOf(hexStr.charAt(bytes[i]0x0F));
result ◆=hex;
}
return result;
public static void main(String[] args) {
Scanner sca = new Scanner(System.in);
boolean flag = true;
while (flag) {
System.out.print("请输入一个二进制字符串:");
String str = sca.next();
System.out.println();
System.out.println("您输入的是字符串的十六进制为:"◆BinaryToHexString(str.getBytes()));
System.out.print("是否继续转化(如果不继续请输入"exit",继续的话输入任意字符):");
String _str = sca.next();
if (_str.equalsIgnoreCase("exit")) {
flag = false;
方法如下:
/* *
* Convert byte[] to hex string.这里我们可以将byte转换成int,然后利用Integer.toHexString(int)
* @param src byte[] data
* @return hex string
*/ ?
public static String bytesToHexString(byte[] src){
StringBuilder stringBuilder = new StringBuilder("");
if (src == null || src.length = 0) {
return null;
for (int i = 0; i src.length; i◆◆) {
int v = src[i] 0xFF;
String hv = Integer.toHexString(v);
stringBuilder.append(0);
stringBuilder.append(hv);
return stringBuilder.toString();
Java是一门面向对象编程语言,不仅吸收了C◆◆语言的各种优点,还摒弃了C◆◆里难以理解的多继承、指针等概念,所以呢Java语言具有功能强大和简单易用两个特征.Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程.
public?class?HelloWorld
{
public?static?void?main(String?[]args)
System.out.println(Integer.toHexString(number));?//?小写的
System.out.println(Integer.toHexString(number).toUpperCase());?//?大写的
System.out.println("0x"◆Integer.toHexString(number));?//?加上0x前缀的
运行结果:
//当然可以:我分两步讲解,两种方法,一个比较简单,利用系统API,一个讲原理稍微复杂一点!
import?java.util.Scanner;
public?class?Tohex?
//录入数字用!
private?static?Scanner?sc=new?Scanner(System.in);
//容器,存放转好的数字,也可以不用,也可以用数组!
private?static?StringBuffer?sb;
public?static?void?main(String[]?args)?
/*
Integer,这个类功能很强大,是Java提供的,想用可以查询一下;
特点就是简单拿来就用,新手不建议使用,搞懂进制转换原理以后在去使用API事半功倍!
init();
//方法1,用系统API
private?static?void?init()
//十进制!
String?hex=Integer.toHexString(a);
System.out.println(a◆"?十六进制=?"◆hex◆"\n------------------------------------\n\t\t自定义测试:\n");
input();
private?static?void?input()
while(true)
System.out.println("输入被转数字:\n");
int?a=sc.nextInt();
int?b=sc.nextInt();
ToHex(a,b);
//转换过程!
private?static?void?ToHex(int?x,int?y)//a是要转数字,b是进制!
sb=new?StringBuffer();
int?a=x,b=0,c=0;
switch(y)
break;
default?:break;
while(a0)
int?tem=ab;
sb.append(s);
a=ac;
print(sb);//传递打印!
//打印!
private?static?void?print(StringBuffer?sb)
System.out.println("\n结果演示:"◆sb.reverse()◆"\n请继续输入测试---\n");
sb=null;
算法比较复杂,建议直接使用系统内置的方法
int?num?=?1000;
String?hexStr?=?Integer.toHexString(num);
直接看源码,可能你需要的只是简单的,需要的话我可以给你写个简单的算法,只支持正数,应该还不能太大的
public?static?void?main(String[]?args)?{
System.out.println(hexStr);
StringBuilder?builder?=?new?StringBuilder();
System.out.println(builder.reverse());
if?(num?0)?{
return;
builder.append(hexChar[num]);
builder.append(hexChar[temp]);
以上就是土嘎嘎小编大虾米为大家整理的相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!