博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java字节数组转按radix进制输出
阅读量:6408 次
发布时间:2019-06-23

本文共 2391 字,大约阅读时间需要 7 分钟。

代码如下:

1 public class Main_bytesToStr { 2  3     public static void main(String[] args) throws IOException { 4         // TODO Auto-generated method stub 5         System.out.println("defaultCharset: " + Charset.defaultCharset().name()); 6         System.out.println("file.encoding:" + System.getProperty("file.encoding")); 7         System.out.println(); 8  9         String word = "a好";// 字符或字符串在Java内存中始终以内部编码即UTF-16保存。且采用大端10         printTransStr(word, "ISO-8859-1");11         printTransStr(word, "GBK");12         printTransStr(word, "Unicode");13         printTransStr(word, "UTF-16");14         printTransStr(word, "UTF-16BE");15         printTransStr(word, "UTF-16LE");16         System.out.println();17 18         InputStreamReader ir = new InputStreamReader(System.in);19 20     }21 22     public static void printTransStr(String word, String charset) throws UnsupportedEncodingException {23         System.out.println("--------" + word + "  " + charset + "--------");24         byte[] bytes = word.getBytes(charset);25         System.out.println(binaryToStr(bytes, 2));26         System.out.println(binaryToStr(bytes, 8));27         System.out.println(binaryToStr(bytes, 10));28         System.out.println(binaryToStr(bytes, 16));29     }30 31     /**32      * 将byte[]转为各种进制的字符串33      * 34      * @param bytes35      *            byte[]36      * @param radix37      *            基数可以转换进制的范围,从Character.MIN_RADIX到Character.MAX_RADIX,超出范围后变为10进制38      * @return 转换后的字符串39      */40     public static String binaryToStr(byte[] bytes, int radix) {41         return new BigInteger(1, bytes).toString(radix);// 这里的1代表正数42         // System.out.printf("%x ",bytes[0]);43     }44 }

结果如下:

1 defaultCharset: GBK 2 file.encoding:GBK 3  4 --------a好  ISO-8859-1-------- 5 110000100111111 6 60477 7 24895 8 613f 9 --------a好  GBK--------10 1100001101110101100001111 3033530312 640480313 61bac314 --------a好  Unicode--------15 11111110111111110000000001100001010110010111110116 775774003025457517 28037117649548518 feff0061597d19 --------a好  UTF-16--------20 11111110111111110000000001100001010110010111110121 775774003025457522 28037117649548523 feff0061597d24 --------a好  UTF-16BE--------25 1100001010110010111110126 3025457527 637990128 61597d29 --------a好  UTF-16LE--------30 110000100000000011111010101100131 1410007653132 162742204133 61007d59

 从Unicode或UTF-16的结果也可以看出,JVM采用大端方式存多字节的数据。

 

转载地址:http://gtqea.baihongyu.com/

你可能感兴趣的文章
重构之美-跨越Web标准,触碰语义网[开门见山:Microformat]
查看>>
git入门与实践【转】
查看>>
WPF 虚拟键盘
查看>>
储存卡无法打开专家教您怎么数据恢复
查看>>
彼得原理
查看>>
如何利用【百度地图API】,制作房产酒店地图?(下)——结合自己的数据库...
查看>>
[20171113]修改表结构删除列相关问题3.txt
查看>>
特征选择
查看>>
在Winform程序中设置管理员权限及为用户组添加写入权限
查看>>
RTMP直播到FMS中的AAC音频直播
查看>>
多能互补提速 加快我国能源转型和现代能源体系建设
查看>>
B2G编译前的准备
查看>>
jQuery ajax()使用serialize()提交form数据
查看>>
程序框架的作用
查看>>
什么是DHTML
查看>>
Oxite学习之一:Oxite安装
查看>>
extjs4 panel下tools里的元素选择器
查看>>
Mac下使用Docker简单介绍
查看>>
SpringMvc Ehcache 实现缓存机制
查看>>
javascript闭包的使用
查看>>