如何将16进制数字转换成字符串 java java 16进制字符串怎么转换成10进制字符串

\u8bf7\u6559JAVA\u600e\u4e48\u5c06\u5341\u516d\u8fdb\u5236\u8f6c\u6362\u4e3a\u5b57\u7b26\u4e32\uff0c\u591a\u8c22

private static String hexString = "0123456789ABCDEF";public static void main(String[] args) { System.out.println(encode("\u4e2d\u6587")); System.out.println(decode(encode("\u4e2d\u6587")));}/* * \u5c06\u5b57\u7b26\u4e32\u7f16\u7801\u621016\u8fdb\u5236\u6570\u5b57,\u9002\u7528\u4e8e\u6240\u6709\u5b57\u7b26\uff08\u5305\u62ec\u4e2d\u6587\uff09 */public static String encode(String str) { // \u6839\u636e\u9ed8\u8ba4\u7f16\u7801\u83b7\u53d6\u5b57\u8282\u6570\u7ec4 byte[] bytes = str.getBytes(); StringBuilder sb = new StringBuilder(bytes.length * 2); // \u5c06\u5b57\u8282\u6570\u7ec4\u4e2d\u6bcf\u4e2a\u5b57\u8282\u62c6\u89e3\u62102\u4f4d16\u8fdb\u5236\u6574\u6570 for (int i = 0; i > 4));sb.append(hexString.charAt((bytes[i] & 0x0f) >> 0));} return sb.toString();}/* * \u5c0616\u8fdb\u5236\u6570\u5b57\u89e3\u7801\u6210\u5b57\u7b26\u4e32,\u9002\u7528\u4e8e\u6240\u6709\u5b57\u7b26\uff08\u5305\u62ec\u4e2d\u6587\uff09 */public static String decode(String bytes) { ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length() / 2); // \u5c06\u6bcf2\u4f4d16\u8fdb\u5236\u6574\u6570\u7ec4\u88c5\u6210\u4e00\u4e2a\u5b57\u8282 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());}\u4eb2\u6d4b\u53ef\u884c\uff0c\u652f\u6301\u4e2d\u6587\uff01\uff01\uff01

toHexString
public static String toHexString(int
i)\u4ee5\u5341\u516d\u8fdb\u5236\u7684\u65e0\u7b26\u53f7\u6574\u6570\u5f62\u5f0f\u8fd4\u56de\u4e00\u4e2a\u6574\u6570\u53c2\u6570\u7684\u5b57\u7b26\u4e32\u8868\u793a\u5f62\u5f0f\u3002
\u5982\u679c\u53c2\u6570\u4e3a\u8d1f\uff0c\u90a3\u4e48\u65e0\u7b26\u53f7\u6574\u6570\u503c\u4e3a\u53c2\u6570\u52a0\u4e0a
232\uff1b\u5426\u5219\u7b49\u4e8e\u8be5\u53c2\u6570\u3002\u5c06\u8be5\u503c\u8f6c\u6362\u4e3a\u5341\u516d\u8fdb\u5236\uff08\u57fa\u6570 16\uff09\u7684\u65e0\u524d\u5bfc 0 \u7684 ASCII \u6570\u5b57\u5b57\u7b26\u4e32\u3002\u5982\u679c\u65e0\u7b26\u53f7\u6570\u7684\u5927\u5c0f\u503c\u4e3a\u96f6\uff0c\u5219\u7528\u4e00\u4e2a\u96f6\u5b57\u7b26 '0'
('\u0030') \u8868\u793a\u5b83\uff1b\u5426\u5219\uff0c\u65e0\u7b26\u53f7\u6570\u5927\u5c0f\u7684\u8868\u793a\u5f62\u5f0f\u4e2d\u7684\u7b2c\u4e00\u4e2a\u5b57\u7b26\u5c06\u4e0d\u662f\u96f6\u5b57\u7b26\u3002\u7528\u4ee5\u4e0b\u5b57\u7b26\u4f5c\u4e3a\u5341\u516d\u8fdb\u5236\u6570\u5b57\uff1a
0123456789abcdef

\u8fd9\u4e9b\u5b57\u7b26\u7684\u8303\u56f4\u662f\u4ece '\u0030' \u5230 '\u0039' \u548c\u4ece '\u0061' \u5230 '\u0066'\u3002\u5982\u679c\u5e0c\u671b\u5f97\u5230\u5927\u5199\u5b57\u6bcd\uff0c\u53ef\u4ee5\u5728\u7ed3\u679c\u4e0a\u8c03\u7528
String.toUpperCase() \u65b9\u6cd5\uff1a
Integer.toHexString(n).toUpperCase()
\u53c2\u6570\uff1a
i
- \u8981\u8f6c\u6362\u6210\u5b57\u7b26\u4e32\u7684\u6574\u6570\u3002
\u8fd4\u56de\uff1a
\u7528\u5341\u516d\u8fdb\u5236\uff08\u57fa\u6570 16\uff09\u53c2\u6570\u8868\u793a\u7684\u65e0\u7b26\u53f7\u6574\u6570\u503c\u7684\u5b57\u7b26\u4e32\u8868\u793a\u5f62\u5f0f\u3002
// \u8f6c\u5316\u5b57\u7b26\u4e32\u4e3a\u5341\u516d\u8fdb\u5236\u7f16\u7801

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;
}

// \u8f6c\u5316\u5341\u516d\u8fdb\u5236\u7f16\u7801\u4e3a\u5b57\u7b26\u4e32
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;
}
// \u8f6c\u5316\u5341\u516d\u8fdb\u5236\u7f16\u7801\u4e3a\u5b57\u7b26\u4e32

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("\u4e2d\u6587"));

System.out.println(decode(encode("\u4e2d\u6587")));
}
/*
* 16\u8fdb\u5236\u6570\u5b57\u5b57\u7b26\u96c6

*/
private static String hexString="0123456789ABCDEF";
/*
*
\u5c06\u5b57\u7b26\u4e32\u7f16\u7801\u621016\u8fdb\u5236\u6570\u5b57,\u9002\u7528\u4e8e\u6240\u6709\u5b57\u7b26\uff08\u5305\u62ec\u4e2d\u6587\uff09
*/
public static String encode(String str)

{
//\u6839\u636e\u9ed8\u8ba4\u7f16\u7801\u83b7\u53d6\u5b57\u8282\u6570\u7ec4
byte[] bytes=str.getBytes();
StringBuilder
sb=new StringBuilder(bytes.length*2);
//\u5c06\u5b57\u8282\u6570\u7ec4\u4e2d\u6bcf\u4e2a\u5b57\u8282\u62c6\u89e3\u62102\u4f4d16\u8fdb\u5236\u6574\u6570
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();
}
/*
* \u5c0616\u8fdb\u5236\u6570\u5b57\u89e3\u7801\u6210\u5b57\u7b26\u4e32,\u9002\u7528\u4e8e\u6240\u6709\u5b57\u7b26\uff08\u5305\u62ec\u4e2d\u6587\uff09
*/
public
static String decode(String bytes)
{
ByteArrayOutputStream baos=new
ByteArrayOutputStream(bytes.length()/2);
//\u5c06\u6bcf2\u4f4d16\u8fdb\u5236\u6574\u6570\u7ec4\u88c5\u6210\u4e00\u4e2a\u5b57\u8282
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());
}

\u7b2c\u4e8c\u79cd\u65b9\u6cd5\uff1a
\u5c06\u6307\u5b9abyte\u6570\u7ec4\u4ee516\u8fdb\u5236\u7684\u5f62\u5f0f\u6253\u5370\u5230\u63a7\u5236\u53f0

\u590d\u5236\u4ee3\u7801
\u4ee3\u7801\u5982\u4e0b:


package com.nantian.iclient.atm.sdb;


public class Util {
public Util() {
}

/**
*
\u5c06\u6307\u5b9abyte\u6570\u7ec4\u4ee516\u8fdb\u5236\u7684\u5f62\u5f0f\u6253\u5370\u5230\u63a7\u5236\u53f0
* @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;
}


/**
* \u5c06\u4e24\u4e2aASCII\u5b57\u7b26\u5408\u6210\u4e00\u4e2a\u5b57\u8282\uff1b
* \u5982\uff1a"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;
}

/**
*
\u5c06\u6307\u5b9a\u5b57\u7b26\u4e32src\uff0c\u4ee5\u6bcf\u4e24\u4e2a\u5b57\u7b26\u5206\u5272\u8f6c\u6362\u4e3a16\u8fdb\u5236\u5f62\u5f0f
* \u5982\uff1a"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;
}

}

使用这个方法可以传进去的16进制的数字组成的字符串转化为utf-8格式的字符串

public static String toStringHex1(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;
}

  • 鍗佸叚杩涘埗鎬庝箞杞崲涓哄瓧绗︿覆
    绛旓細1銆侀鍏堬紝鍦鍗佸叚杩涘埗缂栬緫妯″紡涓嬶紝宸︿晶鏄鏁帮紝涓棿鏄杞崲鍚庣殑鍗佸叚杩涘埗浠g爜锛屽彸渚ф槸鍘熷鏂囨湰鍐呭锛屽涓嬪浘鎵绀猴紝鐒跺悗杩涘叆涓嬩竴姝ャ2銆佸叾娆★紝濡傛灉瑕佹煡鐪嬫煇涓瀛楃鐨勫崄鍏繘鍒朵唬鐮侊紝鍙互鍗曞嚮鍙充晶鐨勫師濮嬪瓧绗︿綅缃紝鍦ㄤ腑闂撮儴鍒嗗彲浠ョ湅鍒扮浉搴旂殑鍗佸叚杩涘埗鍊硷紝渚嬪锛屽崟鍑籟5]锛屽搴旂殑鏄痆 35]锛屽涓嬪浘鎵绀猴紝鐒跺悗杩涘叆涓...
  • 16杩涘埗鏁存暟鍜瀛楃涓浜掔浉杞崲鍑芥暟
    绛旓細瀵逛簬鏁存暟杞瓧绗︿覆鍙互浣跨敤sprintf_s鍑芥暟杩涜杞崲锛岃繖閲屾彁渚涗竴涓嚜瀹氫箟鍑芥暟锛岃兘澶熷疄鐜16杩涘埗鐨勫瓧绗︿覆杞崲鏁存暟鐨勫姛鑳斤紝濡備笅鎵绀猴細閽堝涓婅堪鐨勪唬鐮侊紝涓嬮潰鐨勪唬鐮佸彲浠ュ皢16杩涘埗鐨勬暣鏁拌浆鎹负瀛楃涓茬殑褰㈠紡锛屼笅闈㈢粰鍑烘簮浠g爜锛屽涓嬫墍绀猴細瀵逛簬璇ュ瓙鍑芥暟鐨勮皟鐢ㄦ柟寮忥紝涓句緥濡備笅鎵绀猴細 unsigned long value = 0x798656; BYTE...
  • 濡備綍鎶16杩涘埗鐨鏁版嵁杞崲鎴愬瓧绗︿覆
    绛旓細涓昏鏈変袱涓柟娉曪紝鍏跺疄閮芥槸瀵圭幇鏈夊嚱鏁扮殑浣跨敤锛鏂规硶1: sscanf()鍑芥暟鍚: sscanf鍔 鑳: 浠庡瓧绗︿覆鏍煎紡鍖栬緭鍏ョ敤 娉: int sscanf(char *string, char *format[,argument,...]);浠ヤ笂鐨 format 涓 %x 灏辨槸灏嗗瓧绗︿覆鏍煎紡鍖栦负 16 杩涘埗鏁颁緥瀛愶細#include <stdio.h>void main(){char* p = "0x1a";i...
  • 鍗佸叚杩涘埗鏁拌浆瀛楃
    绛旓細16杩涘埗杞崲鎴愬瓧绗︿覆锛歋tring b = String.Parse("AB", System.Globalization.NumberStyles.HexNumber)
  • 濡備綍灏16杩涘埗杩涘埗鏁拌浆鎹㈡垚 瀛楃涓褰㈠紡 c++璇█
    绛旓細鐢╯printf鍑芥暟锛屽寘鍚湪stdio.h澶存枃浠朵腑锛岀敤娉曞涓嬶細char szStr[9];sprintf(szStr, "%x%x%x", 0x14, 0xd4, 0xcb, 0xa7);printf("%s\n", szStr);
  • 鍦╲c閲岄潰,16杩涘埗鎬庝箞杞崲鎴愬瓧绗?
    绛旓細涓銆佸叾瀹鏁版嵁绫诲瀷杞崲涓哄瓧绗︿覆 鐭暣鍨(int) itoa(i,temp,10);/灏唅杞崲涓哄瓧绗︿覆鏀惧叆temp涓,鏈鍚庝竴涓鏁板瓧琛ㄧず鍗杩涘埗 itoa(i,temp,2); /鎸変簩杩涘埗鏂瑰紡杞崲 闀挎暣鍨(long) ltoa(l,temp,10); 娴偣鏁(float,double) 鐢╢cvt鍙互瀹屾垚杞崲,杩欐槸MSDN涓殑渚嬪瓙: ...
  • 濡備綍灏16杩涘埗鏁板瓧杞崲鎴愬瓧绗︿覆 java
    绛旓細浣跨敤杩欎釜鏂规硶鍙互浼犺繘鍘荤殑16杩涘埗鐨鏁板瓧缁勬垚鐨瀛楃涓茶浆鍖栦负utf-8鏍煎紡鐨勫瓧绗︿覆 public static String toStringHex1(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(...
  • 璇锋暀JAVA鎬庝箞灏嗗崄鍏繘鍒惰浆鎹负瀛楃涓,澶氳阿
    绛旓細private static String hexString = "0123456789ABCDEF";public static void main(String[] args) { System.out.println(encode("涓枃")); System.out.println(decode(encode("涓枃")));}/* * 灏嗗瓧绗︿覆缂栫爜鎴16杩涘埗鏁板瓧,閫傜敤浜庢墍鏈夊瓧绗︼紙鍖呮嫭涓枃锛 */public static String encode(String str...
  • C璇█瀹炵幇鍗佸叚杩涘埗杞崲鎴愬瓧绗︿覆
    绛旓細鍙互鎶16杩涘埗鐨勬暟姣忎竴浣嶆暟閮借鍑烘潵锛堝埄鐢ㄥ彇浣欒繍绠楋紝渚嬪瑕佽幏寰楃涓浣嶅氨%16锛岃鑾峰緱绗簩浣嶅氨%16²...锛夛紝鐒跺悗鎶婅繖浜鏁拌浆鍖栦负10杩涘埗锛岀劧鍚庡啀鏍规嵁瀵瑰簲鐨刟scii鐮佹潵杞寲涓篶har锛屽啀鍚堝苟涓哄瓧绗︿覆銆俢璇█涓嶇煡閬撴湁娌℃湁鍑芥暟鍙互鐩存帴杞寲锛屾垜c鐢ㄧ殑姣旇緝灏戯紝浣犲彲浠ユ煡涓鏌 ...
  • 鎬庝箞鎶16杩涘埗鐨凙SC鐮杞崲鎴愬瓧绗︿覆鐨勬樉绀,鐢╬ython瀹炵幇
    绛旓細灏16杩涘埗瀛楃杞垚浜岃繘鍒跺瓧绗 def str2byte(s):base='0123456789ABCDEF'i=0 s = s.upper()s1=''while i < len(s):c1=s[i]c2=s[i+1]i+=2 b1=base.find(c1)b2=base.find(c2)if b1 == -1 or b2 == -1:return None s1+=chr((b1 << 4)+b2)return s1 s = 'C7 EB CE...
  • 本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网