Java byte[] 字节数组 转 二进制 八进制 十进制 十六进制字符串

来源:互联网 发布:ubuntu 查看gpu型号 编辑:程序博客网 时间:2024/05/18 00:08

【前言】

java中很多时候需要将byte[]转为各种进制的字符串显示,从2,8,10,16到比较高级的base64(编码),

至于什么时候需要这样,当你遇到这样的问题就知道了。


【代码】

进制转换比较简单,直接上代码,编码转换见其他文章。例如这个

package com.uikoo9.util.encrypt;import java.math.BigInteger;public class QEncodeUtil {public static void main(String[] args) {String s = "woaini";byte[] bytes = s.getBytes();System.out.println("将woaini转为不同进制的字符串:");System.out.println("可以转换的进制范围:" + Character.MIN_RADIX + "-" + Character.MAX_RADIX);System.out.println("2进制:"+ binary(bytes,2));System.out.println("5进制:"+ binary(bytes,5));System.out.println("8进制:"+ binary(bytes,8));System.out.println("16进制:"+ binary(bytes,16));System.out.println("32进制:"+ binary(bytes,32));System.out.println("64进制:"+ binary(bytes,64));// 这个已经超出范围,超出范围后变为10进制显示System.exit(0);}/** * 将byte[]转为各种进制的字符串 * @param bytes byte[] * @param radix 基数可以转换进制的范围,从Character.MIN_RADIX到Character.MAX_RADIX,超出范围后变为10进制 * @return 转换后的字符串 */public static String binary(byte[] bytes, int radix){return new BigInteger(1, bytes).toString(radix);// 这里的1代表正数}}

【输出】

将woaini转为不同进制的字符串:可以转换的进制范围:2-362进制:111011101101111011000010110100101101110011010015进制:1142030223423444422428进制:356675413226715116进制:776f61696e6932进制:3ndtgmirj964进制:131320259374697


2 0