java 16进制字符转10进制_java 16进制字符串怎么转换成10进制字符串
展开全部
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进制字符串相关推荐
- C++24小时制转换成12小时制
英文题目(老师给的原版题目): Write a program that converts from 24-hour notation to 12-hour notation.For example, ...
- Java将16进制字符串,转换成字符串
Java将16进制字符串,转换成字符串 前段时间遇到同事给了我一串16进制的字符串,让我把它给转成正常的字符串. 16进制字符串: c8:ed:cc:bd:d5:eb 转换后正常的字符串: 软探针 解 ...
- C语言 将16进制转换成10进制输出
大家好!今天来打印16进制转换成10进制输出,16进制前面是0x.这里以打印ABCDEF的10进制为例 如下: 希望有所启发!!!^__^ 大雨落幽燕,白浪滔天,秦皇岛外打鱼船. ---------- ...
- # 将微博地址里面的62进制字符串转换成10进制的16位数字mid
# 将微博地址里面的62进制字符串转换成10进制的16位数字middef base62_decode(string):alphabet = "0123456789abcdefghijklmn ...
- 【汇编】16进制转换成10进制(三种方法)
汇编语言程序:16进制转换成10进制(三种方法) 1 ;天水浪客(Gouki Jiang) , 16进制to10进制例题 2007.5.18 2 STACK SEGMENT PARA STACK 3 ...
- java非负整数怎么设_使用JAVA将非负十进制整数n转换成b进制,递归方法与非递归方法...
使用JAVA将非负十进制整数n转换成b进制,递归方法与非递归方法 使用JAVA将非负十进制整数n转换成b进制,递归方法与非递归方法 一.题目要求 将非负十进制整数n转换成b进制.(其中b=2~16) ...
- ip 十进制 整型 java_IP地址转换成10进制整数(zt)
一.由域名求IP地址的程序 下面程序由命令行输入域名,输出ip import java.net.*; public class nslookup { //Usage:java nslookup hos ...
- 第E题 转换任意进制 (java方法直接解)==输入一个十进制数N,将它转换成R进制数输出
输入一个十进制数N,将它转换成R进制数输出. Input 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10). Outpu ...
- 试解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 ...
最新文章
- 利用cvMinAreaRect2求取轮廓最小外接矩形
- iOS开发 tabBarController选中状态
- c#与java_C#与Java的区别
- 在Data Lake Analytics中使用视图
- VS_VERSION_INFO信息的读取
- python爬取网上文章_python 爬取微信文章
- phpcms内容页 调用 上一级栏目id,catname等信息 - 代码篇
- 更新管理器_Win10设备管理器失去了通过互联网更新驱动程序的能力
- php ci框架中脚手架是做什么用的
- Type Writer Audio X for Mac(单声道到立体声转换插件)
- 从DLL导出LIB文件
- 手机系统S40 S60 是什么意思?
- linux xps文件,xps文件扩展名,xps文件怎么打开?
- Virtual Machine Monitors——VMM总结
- 百度二级域名大全 目前为234个http://www.twocity.cn/blog/article.asp?id=818
- 移动软件开发-制作视频播放器
- 7-1 sdut-Collection(Map)-1 读中国载人航天史,汇航天员数量,向航天员致敬
- 2019年大数据发展趋势预测,该学什么编程语言?
- c++基础-继承与派生,定义基类person和公有派生类student
- python正则表达式匹配专利号
热门文章
- TI Sitara AM335x是一款高性能嵌入式32位工业级Cortex-A8处理器
- 汽车诊断协议ISO15765
- fiddle 配置
- Docker部署 Oracle12c
- OPPO R9s官方固件刷机包线刷救砖教程图解
- python简单代码演示效果-python制作演示动画
- 目前应用计算机管理系统在护理管理中不包括,目前应用计算机管理系统在护理管理中不包括...
- javascript中网页 url 与字符串之间的转换
- Java基础之JDK8之Stream接口
- linux7系统能用ghost,CentOS 7系统安装Ghost博客平台