展开全部

toHexString

public static String toHexString(int

i)以十六进制的无符号整数形式返回一个整数参数的字符串表示形式。

如果参数为负,那么无符号整数值为参62616964757a686964616fe4b893e5b19e31333339666132数加上

232;否则等于该参数。将该值转换为十六进制(基数 16)的无前导 0 的 ASCII 数字字符串。如果无符号数的大小值为零,则用一个零字符 '0'

('\u0030') 表示它;否则,无符号数大小的表示形式中的第一个字符将不是零字符。用以下字符作为十六进制数字:

0123456789abcdef

这些字符的范围是从 '\u0030' 到 '\u0039' 和从 '\u0061' 到 '\u0066'。如果希望得到大写字母,可以在结果上调用

String.toUpperCase() 方法:

Integer.toHexString(n).toUpperCase()

参数:

i

- 要转换成字符串的整数。

返回:

用十六进制(基数 16)参数表示的无符号整数值的字符串表示形式。

// 转化字符串为十六进制编码

public static String toHexString(String s)

{

String str="";

for

(int i=0;i

{

int ch = (int)s.charAt(i);

String s4

= Integer.toHexString(ch);

str = str + s4;

}

return str;

}

// 转化十六进制编码为字符串

public static String toStringHex(String s)

{

byte[] baKeyword = new byte[s.length()/2];

for(int i = 0; i <

baKeyword.length; i++)

{

try

{

baKeyword[i] = (byte)(0xff &

Integer.parseInt(s.substring(i*2, i*2+2),16));

}

catch(Exception e)

{

e.printStackTrace();

}

}

try

{

s = new

String(baKeyword, "utf-8");//UTF-16le:Not

}

catch (Exception e1)

{

e1.printStackTrace();

}

return s;

}

// 转化十六进制编码为字符串

public static String toStringHex(String s)

{

byte[] baKeyword = new

byte[s.length()/2];

for(int i = 0; i < baKeyword.length; i++)

{

try

{

baKeyword[i] = (byte)(0xff &

Integer.parseInt(s.substring(i*2, i*2+2),16));

}

catch(Exception e)

{

e.printStackTrace();

}

}

try

{

s = new

String(baKeyword, "utf-8");//UTF-16le:Not

}

catch (Exception e1)

{

e1.printStackTrace();

}

return s;

}

public static void

main(String[] args) {

System.out.println(encode("中文"));

System.out.println(decode(encode("中文")));

}

/*

* 16进制数字字符集

*/

private static String hexString="0123456789ABCDEF";

/*

*

将字符串编码成16进制数字,适用于所有字符(包括中文)

*/

public static String encode(String str)

{

//根据默认编码获取字节数组

byte[] bytes=str.getBytes();

StringBuilder

sb=new StringBuilder(bytes.length*2);

//将字节数组中每个字节拆解成2位16进制整数

for(int

i=0;i

{

sb.append(hexString.charAt((bytes[i]&0xf0)>>4));

sb.append(hexString.charAt((bytes[i]&0x0f)>>0));

}

return

sb.toString();

}

/*

* 将16进制数字解码成字符串,适用于所有字符(包括中文)

*/

public

static String decode(String bytes)

{

ByteArrayOutputStream baos=new

ByteArrayOutputStream(bytes.length()/2);

//将每2位16进制整数组装成一个字节

for(int

i=0;i

baos.write((hexString.indexOf(bytes.charAt(i))<<4

|hexString.indexOf(bytes.charAt(i+1))));

return new

String(baos.toByteArray());

}

第二种方法:

将指定byte数组以16进制的形式打印到控制台

复制代码

代码如下:

package com.nantian.iclient.atm.sdb;

public class Util {

public Util() {

}

/**

*

将指定byte数组以16进制的形式打印到控制台

* @param hint String

* @param b byte[]

*

@return void

*/

public static void printHexString(String hint, byte[] b)

{

System.out.print(hint);

for (int i = 0; i < b.length; i++) {

String hex = Integer.toHexString(b[i] & 0xFF);

if (hex.length() ==

1) {

hex = '0' + hex;

}

System.out.print(hex.toUpperCase() + " ");

}

System.out.println("");

}

/**

*

* @param b byte[]

* @return String

*/

public static String Bytes2HexString(byte[] b) {

String ret = "";

for (int i = 0; i < b.length; i++) {

String hex

= Integer.toHexString(b[i] & 0xFF);

if (hex.length() == 1) {

hex =

'0' + hex;

}

ret += hex.toUpperCase();

}

return ret;

}

/**

* 将两个ASCII字符合成一个字节;

* 如:"EF"--> 0xEF

* @param src0

byte

* @param src1 byte

* @return byte

*/

public static byte

uniteBytes(byte src0, byte src1) {

byte _b0 = Byte.decode("0x" + new

String(new byte[]{src0})).byteValue();

_b0 = (byte)(_b0 << 4);

byte _b1 = Byte.decode("0x" + new String(new byte[]{src1})).byteValue();

byte ret = (byte)(_b0 ^ _b1);

return ret;

}

/**

*

将指定字符串src,以每两个字符分割转换为16进制形式

* 如:"2B44EFD9" --> byte[]{0x2B, 0x44, 0xEF,

0xD9}

* @param src String

* @return byte[]

*/

public static

byte[] HexString2Bytes(String src){

byte[] ret = new byte[8];

byte[] tmp

= src.getBytes();

for(int i=0; i<8; i++){

ret[i] =

uniteBytes(tmp[i*2], tmp[i*2+1]);

}

return ret;

}

}

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

java 16进制字符转10进制_java 16进制字符串怎么转换成10进制字符串相关推荐

  1. C++24小时制转换成12小时制

    英文题目(老师给的原版题目): Write a program that converts from 24-hour notation to 12-hour notation.For example, ...

  2. Java将16进制字符串,转换成字符串

    Java将16进制字符串,转换成字符串 前段时间遇到同事给了我一串16进制的字符串,让我把它给转成正常的字符串. 16进制字符串: c8:ed:cc:bd:d5:eb 转换后正常的字符串: 软探针 解 ...

  3. C语言 将16进制转换成10进制输出

    大家好!今天来打印16进制转换成10进制输出,16进制前面是0x.这里以打印ABCDEF的10进制为例 如下: 希望有所启发!!!^__^ 大雨落幽燕,白浪滔天,秦皇岛外打鱼船. ---------- ...

  4. # 将微博地址里面的62进制字符串转换成10进制的16位数字mid

    # 将微博地址里面的62进制字符串转换成10进制的16位数字middef base62_decode(string):alphabet = "0123456789abcdefghijklmn ...

  5. 【汇编】16进制转换成10进制(三种方法)

    汇编语言程序:16进制转换成10进制(三种方法) 1 ;天水浪客(Gouki Jiang) , 16进制to10进制例题 2007.5.18 2 STACK SEGMENT PARA STACK 3 ...

  6. java非负整数怎么设_使用JAVA将非负十进制整数n转换成b进制,递归方法与非递归方法...

    使用JAVA将非负十进制整数n转换成b进制,递归方法与非递归方法 使用JAVA将非负十进制整数n转换成b进制,递归方法与非递归方法 一.题目要求 将非负十进制整数n转换成b进制.(其中b=2~16) ...

  7. ip 十进制 整型 java_IP地址转换成10进制整数(zt)

    一.由域名求IP地址的程序 下面程序由命令行输入域名,输出ip import java.net.*; public class nslookup { //Usage:java nslookup hos ...

  8. 第E题 转换任意进制 (java方法直接解)==输入一个十进制数N,将它转换成R进制数输出

    输入一个十进制数N,将它转换成R进制数输出. Input 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10). Outpu ...

  9. 试解PTA《20211122-函数基础练习》,涉及 高精度加法 和 10进制转换成2-16进制问题,有需要的同学来看看吧;

    目录 一.前言 二.例题部分 2.1.进制转换 2.1.1.题解1 2.1.2.题解2 2.2. 函数返回一个整数的反序数 (20 分) 2.2.2 题解 2.3. 大整数A+B (10 分) 2.3 ...

最新文章

  1. 利用cvMinAreaRect2求取轮廓最小外接矩形
  2. iOS开发 tabBarController选中状态
  3. c#与java_C#与Java的区别
  4. 在Data Lake Analytics中使用视图
  5. VS_VERSION_INFO信息的读取
  6. python爬取网上文章_python 爬取微信文章
  7. phpcms内容页 调用 上一级栏目id,catname等信息 - 代码篇
  8. 更新管理器_Win10设备管理器失去了通过互联网更新驱动程序的能力
  9. php ci框架中脚手架是做什么用的
  10. Type Writer Audio X for Mac(单声道到立体声转换插件)
  11. 从DLL导出LIB文件
  12. 手机系统S40 S60 是什么意思?
  13. linux xps文件,xps文件扩展名,xps文件怎么打开?
  14. Virtual Machine Monitors——VMM总结
  15. 百度二级域名大全 目前为234个http://www.twocity.cn/blog/article.asp?id=818
  16. 移动软件开发-制作视频播放器
  17. 7-1 sdut-Collection(Map)-1 读中国载人航天史,汇航天员数量,向航天员致敬
  18. 2019年大数据发展趋势预测,该学什么编程语言?
  19. c++基础-继承与派生,定义基类person和公有派生类student
  20. python正则表达式匹配专利号

热门文章

  1. TI Sitara AM335x是一款高性能嵌入式32位工业级Cortex-A8处理器
  2. 汽车诊断协议ISO15765
  3. fiddle 配置
  4. Docker部署 Oracle12c
  5. OPPO R9s官方固件刷机包线刷救砖教程图解
  6. python简单代码演示效果-python制作演示动画
  7. 目前应用计算机管理系统在护理管理中不包括,目前应用计算机管理系统在护理管理中不包括...
  8. javascript中网页 url 与字符串之间的转换
  9. Java基础之JDK8之Stream接口
  10. linux7系统能用ghost,CentOS 7系统安装Ghost博客平台