进制转换问题
Integer.toString(target_i, 16);就是十六进制,
Integer.toString(target_i, 2);就是二进制,
Integer.toString(target_i, 8);就是八进制,
Long,Float 也具有同样的方法
// 16进制到2进制
int Integer.decode("0xFF");
---------------------------------------------------
// 转化字符串为十六进制编码
public static String toHexString(String s)
{
String str="";
for (int i=0;i<s.length();i++)
{
int ch = (int)s.charAt(i);
String s4 = Integer.toHexString(ch);
str = str + s4;
}
return str;
}
// 字符串16进制,互转
private static String hexString="0123456789ABCDEF";
public static String decode(String bytes)
{
ByteArrayOutputStream baos=new ByteArrayOutputStream(bytes.length()/2);
//将每2位16进制整数组装成一个字节
for(int i=0;i<bytes.length();i+=2)
{
baos.write((hexString.indexOf(bytes.charAt(i))<<4 |hexString.indexOf(bytes.charAt(i+1))));
}
return new String(baos.toByteArray());
}
public static String encode(String str)
{
//根据默认编码获取字节数组
byte[] bytes=str.getBytes();
StringBuilder sb=new StringBuilder(bytes.length*2);
//将字节数组中每个字节拆解成2位16进制整数
for(int i=0;i<bytes.length;i++)
{
sb.append(hexString.charAt((bytes[i]&0xf0)>>4));
sb.append(hexString.charAt((bytes[i]&0x0f)>>0));
}
return sb.toString();
}
// byte[] 数组转换为16进制字符串
public static void toHex(byte[] src)
{
StringBuilder stringBuilder = new StringBuilder("");
if (src == null || src.length <= 0) {
return ;
}
for (int i = 0; i < src.length; i++) {
int v = src[i] & 0xFF;
String hv = Integer.toHexString(v);
if (hv.length() < 2) {
stringBuilder.append(0);
}
stringBuilder.append(hv);
}
System.out.println(stringBuilder.toString());
}
// 该方法测试各种编码格式,生成的16进制,位数是不同的·
public static void encode()
{
String name = "I am 泰山";
try {
byte[] iso8859 = name.getBytes("ISO-8859-1");
toHex(iso8859);
byte[] gb2312 = name.getBytes("GB2312");
toHex(gb2312);
byte[] gbk = name.getBytes("GBK");
toHex(gbk);
byte[] utf16 = name.getBytes("UTF-16");
toHex(utf16);
byte[] utf8 = name.getBytes("UTF-8");
toHex(utf8);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
结果如下:
4920616d203f3f
4920616d20cca9c9bd
4920616d20cca9c9bd
feff004900200061006d00206cf05c71
4920616d20e6b3b0e5b1b1
分享到:
相关推荐
Java实现的进制转换工具类完整示例 Java实现的进制转换工具类是Java语言中的一种常用工具类,用于实现各种进制之间的转换操作,如二进制、十六进制、字符串、数组等。该工具类主要提供了将字节数组转换为十六进制...
java 进制转换工具类 java 进制转换工具类java 进制转换工具类 java 进制转换工具类java 进制转换工具类 java 进制转换工具类
从提供的文件信息中,我们可以提取以下知识点: 1. Java程序的运行环境...通过这些详细知识点,我们可以充分理解Java基础中的数据类型、进制转换、以及与之相关的概念。这对于深入学习Java编程语言是非常有帮助的。
在Java编程中,进制转换是一项基础且重要的技能,尤其在处理数据传输、网络通信(如蓝牙通信)或者低级别数据处理时。本篇将详细阐述如何在Java中进行二进制、十进制和十六进制之间的转换,以及字节数组与十六进制...
在Java编程语言中,进制转换是一项基础但重要的技能,特别是在处理数字表示和数据解析时。本程序提供了一个Java桌面小应用程序,它允许用户进行任意进制之间的转换,包括从字符和字符串转换到其他进制数。下面我们将...
一个用java写的进制转换器,有图形界面。 主要是调用java的lang类进行转换。
java编写通用进制转化程序,适合java中学习进制转换
运行这段代码,你会看到不同的进制转换结果,从而加深对Java进制转换的理解。 在实际开发中,进制转换被广泛应用于数据编码、网络通信、内存表示等方面。例如,在网络编程中,IP地址通常以点分十进制形式表示,但在...
Java进制转换 正整数的十进制转换二进制 将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒取除得的余数,即换算为二进制数的结果。只需记住要点:除二取余,倒序排列。 由于计算机...
一、利用Integer将十进制的数进行进制转换 方法 十进制转换其他进制 使用方法 返回值 10进制转2进制 Integer.toBinaryString(n) 一个二进制字符串 10进制转8进制 Integer.toOctalString(n) 一个八进制字符...
在Java编程语言中,26进制转换是一种特殊形式的编码,它不是标准的计算机科学概念,但在某些特定场景下可能会被用到。通常,我们谈论的进制转换包括二进制、八进制、十进制和十六进制之间的转换。然而,"26进制"通常...
java学习,java各进制转换类,方便使用java开发重利用。
### JAVA实用进制转换知识点详解 #### 一、概述 在计算机科学中,不同进制间的数字转换是一项基本且重要的技能。Java作为一种广泛使用的编程语言,提供了多种内置的方法来实现不同进制之间的转换,比如从十进制转换...
二进制数组转换为二进制字符串 将二进制数组转换为十六进制字符串 将十六进制转换为二进制字节数组 将十六进制转换为二进制字符串
在编程领域,进制转换是一项基础且重要的技能,尤其是在处理二进制、八进制、十进制和十六进制等不同数值系统时。Java语言提供了丰富的API来支持这些转换,使得开发者能够轻松地在各种进制间进行切换。本项目就是一...
### Java十进制转换二进制 在计算机科学领域,数据表示和转换是十分重要的基础知识之一。本篇文章将深入解析一个使用Java语言编写的程序,该程序能够将十进制正数和负数转换为二进制形式。通过分析代码逻辑、算法...
一个整数的进制转换,用的全部是JAVA封装好的类,只是练练排版 开发环境为JAVA6 里面有一个swing外观包,找的很辛苦又不会使用的可以学习下,本程序调用的是office2007外观,个人感觉很漂亮,而且我写的很多程序都用...
废话不多上干货! /** * 个人数学工具 * * @author Suage */ class Convert { ... //输入进制 private int sysIn; //输出进制 private int sysOut; //输入实际值 private double actualValue;