二进制转16进制输出 优化 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.util.Scanner;public class Binary2Hex {private static String hexStr = "0123456789ABCDEF"; /** * * @param bytes * @return 将二进制转换为十六进制字符输出 */ public static String BinaryToHexString(byte[] bytes){ String result = ""; String hex = ""; for(int i=0;i<bytes.length;i++){ //字节高4位 hex = String.valueOf(hexStr.charAt((bytes[i]&0xF0)>>4)); //字节低4位 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;}}}} 另外,Java提供了进制转换函数:Integer.toString(int i, int radix)这个方法可以用来转换进制 写写的你回复,受益匪浅,但是我还想知道我的那段代码乱码输出的这个是怎么回事?The hexdecimal value is [C@e66f56 代码中的num.toString()的返回值就是你所谓的乱码,因为num是数组,除非覆盖默认的toString方法,否则返回的是getClass().getName() + "@" + Integer.toHexString(hashcode()); java 获得泛型里的方法 java锁机制,求一段代码。 Java 随机访问文件操作 怎样最大化和最小化JFrame? 关于数据类型转换,请问如何将String M = "13911223344";转换成数值类型? swing的JEditorPane中显示HTML,如何设置HyperLinkEvent 帮忙调试一个关于万年历的程序~~~~~~~~ java classpath 怎么用啊 这个句子怎么翻译好? 继承抽象类,与实现接口有什么区别,空的重写(方法内部为空)算重写吗? 正则表达式的问题 用resultset初始化table,报空指针
public class Binary2Hex {
private static String hexStr = "0123456789ABCDEF";
/**
*
* @param bytes
* @return 将二进制转换为十六进制字符输出
*/
public static String BinaryToHexString(byte[] bytes){
String result = "";
String hex = "";
for(int i=0;i<bytes.length;i++){
//字节高4位
hex = String.valueOf(hexStr.charAt((bytes[i]&0xF0)>>4));
//字节低4位
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;
}
}
}
}
这个方法可以用来转换进制
但是我还想知道我的那段代码乱码输出的这个是怎么回事?
The hexdecimal value is [C@e66f56