代码如下:

 public class Main_bytesToStr {

     public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
System.out.println("defaultCharset: " + Charset.defaultCharset().name());
System.out.println("file.encoding:" + System.getProperty("file.encoding"));
System.out.println(); String word = "a好";// 字符或字符串在Java内存中始终以内部编码即UTF-16保存。且采用大端
printTransStr(word, "ISO-8859-1");
printTransStr(word, "GBK");
printTransStr(word, "Unicode");
printTransStr(word, "UTF-16");
printTransStr(word, "UTF-16BE");
printTransStr(word, "UTF-16LE");
System.out.println(); InputStreamReader ir = new InputStreamReader(System.in); } public static void printTransStr(String word, String charset) throws UnsupportedEncodingException {
System.out.println("--------" + word + " " + charset + "--------");
byte[] bytes = word.getBytes(charset);
System.out.println(binaryToStr(bytes, 2));
System.out.println(binaryToStr(bytes, 8));
System.out.println(binaryToStr(bytes, 10));
System.out.println(binaryToStr(bytes, 16));
} /**
* 将byte[]转为各种进制的字符串
*
* @param bytes
* byte[]
* @param radix
* 基数可以转换进制的范围,从Character.MIN_RADIX到Character.MAX_RADIX,超出范围后变为10进制
* @return 转换后的字符串
*/
public static String binaryToStr(byte[] bytes, int radix) {
return new BigInteger(1, bytes).toString(radix);// 这里的1代表正数
// System.out.printf("%x ",bytes[0]);
}
}

结果如下:

 defaultCharset: GBK
file.encoding:GBK --------a好 ISO-8859-1--------
110000100111111
60477
24895
613f
--------a好 GBK--------
11000011011101011000011
30335303
6404803
61bac3
--------a好 Unicode--------
111111101111111100000000011000010101100101111101
7757740030254575
280371176495485
feff0061597d
--------a好 UTF-16--------
111111101111111100000000011000010101100101111101
7757740030254575
280371176495485
feff0061597d
--------a好 UTF-16BE--------
11000010101100101111101
30254575
6379901
61597d
--------a好 UTF-16LE--------
1100001000000000111110101011001
14100076531
1627422041
61007d59

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

Java字节数组转按radix进制输出的更多相关文章

  1. Java 将字节数组转化为16进制的多种方案

    很多时候我们需要将字节数组转化为16进制字符串来保存,尤其在很多加密的场景中,例如保存密钥等.因为字节数组,除了写入文件或者以二进制的形式写入数据库以外,无法直接转为为字符串,因为字符串结尾有\0,当 ...

  2. JAVA byte数组转化为16进制字符串输出

    最简单的方法: 利用javax.xml.bind包下的DatatypeConverter printHexBinary public static java.lang.String printHexB ...

  3. JAVA中将byte[]数组转成16进制字符串

    方法一: /** * byte数组转化为16进制字符串 * @param bytes * @return */ public static String byteToHexString(byte[] ...

  4. 为什么加密后的数据往往都是base64输出而不是hex16进制输出

    通常加密后的数据都是字节数组,比如流行的aes128对称加密,还有Rsa非对称加密,加密后得到了一个字节数组,这个字节数组存在内存中,往往我们需要输出得到我们人眼能看到的字符. 加密aes(xxx) ...

  5. 把十进制整数转换为r(r=2)进制输出(顺序栈实现)

    上周的第二个作业补上~~ 上周的要求: 1.给出顺序栈的存储结构定义. 2.完成顺序栈的基本操作函数. 1)      初始化顺序栈 2)      实现入栈和出栈操作 3)      实现取栈顶元素 ...

  6. 基于visual Studio2013解决面试题之1203转16进制输出

     题目

  7. C printf按8进制、10进制、16进制输出以及高位补0

    ; /*按整型输出,默认右对齐*/ printf("%d\n",PrintVal); /*按整型输出,补齐4位的宽度,补齐位为空格,默认右对齐*/ printf("%4d ...

  8. java字节数组和16进制之间的转换

    /* * To change this template, choose Tools | Templates * and open the template in the editor. */ pac ...

  9. Java的浮点数和整数的进制转换

    整数的表达 –原码:第一位为符号位(0为正数,1为负数) –反码:符号位不动,原码取反 –负数补码:符号位不动,反码加1 –正数补码:和原码相同     -6      5 原码 10000110 0 ...

随机推荐

  1. C++智能指针详解

    本文出自http://mxdxm.iteye.com/ 一.简介 由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete.程序员忘记 delete,流程太复杂,最 ...

  2. Python进阶【第二篇】多线程、消息队列queue

    1.Python多线程.多进程 目的提高并发 1.一个应用程序,可以有多进程和多线程 2.默认:单进程,单线程 3.单进程,多线程 IO操作,不占用CPU python的多线程:IO操作,多线程提供并 ...

  3. C/S打包 客户端/windows程序 InstallShield

    开发完成后,我们可以直接在Debug目录下启动exe,运行程序. 但是,要如何安装,添加到开始菜单.桌面快捷方式.任务栏等.如Office安装效果: 开始菜单: 快捷菜单: 打包步骤: 1.下载Ins ...

  4. 多点触摸(MT)协议(翻译)

    参考: http://www.kernel.org/doc/Documentation/input/multi-touch-protocol.txt 转自:http://www.arm9home.ne ...

  5. 如何安装虚拟机VMware

    虚拟机可以帮我们在一台电脑上面来模拟出多台电脑,而且可以装不同的系统.下面就教大家怎么装VMware虚拟机 1.下载Vmware安装包,建议下载VMware10 这个有中文版的,其他版本的都是英文的哦 ...

  6. Oracle 收缩数据文件

    Oracle数据库中当某些大数据表不再需要的时候,我们可以通过以下方式来进行清理: DROP TABLE TBL_TEST PURGE; 但是对应表空间(tablespace)中的磁盘空间并没有得到释 ...

  7. shell中export理解误区

    一直以来,以为shell脚本中经过export后的变量会影响到执行这个shell的终端中的环境变量.环境变量这个概念不是shell所独有的,而是linux里面进程所拥有的,shell解释器运行起来就是 ...

  8. [转]django自定义表单提交

    原文网址:http://www.cnblogs.com/retop/p/4677148.html 注:本人使用的Django1.8.3版本进行测试 除了使用Django内置表单,有时往往我们需要自定义 ...

  9. J2EE基础之JSP

    J2EE基础之JSP 1.JSP简介 JSP是JavaServer的缩写,是由Sun Microsystems公司倡导.许多公司参与一起建立的一种动态网页技术标准.在HTML文件中加入Java程序代码 ...

  10. 鼠标 mouseover和mouseout事件

    在div内想实现鼠标移入移出效果,最开始的时候是用了jquery的mouseout和mouseover事件来实现的, $('.product).mouseover(function(){ …… }). ...