首頁 >電腦教學 >電腦知識 >如何用JAVA將十六進位轉換成字串?感謝!

如何用JAVA將十六進位轉換成字串?感謝!

WBOY
WBOY轉載
2024-01-16 09:30:14973瀏覽

如何用JAVA將十六進位轉換成字串?感謝!

請教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) {

// 根據預設編碼取得位元組數組

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))

.indexOf(bytes.charAt(i 1))));

return new String(baos.toByteArray());

}

親測可行,支持中文! ! !有用請記得採納

JAVA如何將16進位數字轉換為ASCII中的字串

#使用這個方法可以傳進去的16進位的數字所組成的字串轉換為utf-8格式的字串

public static String toStringHex1(String s) {

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

for (int i = 0; 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;

}

C語言程式怎麼把16進位轉成字元:

我想你的問題只是將數字轉換為字元對吧,那麼我就不幫你做全文多行的源碼了,我做了一行轉換的,你可以再在外層嵌套一個循環,並使用二維數組來實現全文多行的ASCII碼轉換:

#include "Stdio.h"

#include "Conio.h"

int main(void)

{

int num[10],i=0;

while(getchar() != '\n')

{

getchar();

scanf("%x",&num[i]);

printf("%c",num[i]);

i ;

}

getch();

return 0;

}

原理是這樣的:

你每次的四個位元組的格式都是\xyy的形式,我只要讀入那個十六進位數就可以了,用scanf("%x",&num[i]);語句就可以讀入十六進制數字,將一行的十六進制數在迴圈中全部取出存放在一維數組中。

在輸出方面我投了個懶,直接讀入就輸出了,不過這個不是關鍵了,關鍵是以printf("%c",num[i]);語句輸出,編譯器就會自行把十六進制數轉換為ascii碼所對應的字元並輸出。

現在你明白了麼,就是以格式化的輸入輸出實現讀入的是十六進位數,輸出的是字元。 (那兩個getchar()是分別讀入字元\和x的哈~~)

怎麼把16進位的ASC碼轉換成字串的顯示用python實作

#將16進位字元轉成二進位字元

def str2byte(s):

base='0123456789ABCDEF'

i=0

s = s.upper()

s1=''

while i c1=s[i]

c2=s[i 1]

i =2

b1=base.find(c1)

b2=base.find(c2)

if b1 == -1 或 b2 == -1:

return None

s1 =chr((b1 return s1

s = 'C7 EB CE F0 BE C6 BA F3 BC DD B3 B5'.replace(' ','') #去掉空格

s1 = str2byte(s)

print s1.decode('gbk') #以gbk編碼解碼輸出

#結果

>>>s1

'\xc7\xeb\xce\xf0\xbe\xc6\xba\xf3\xbc\xdd\xb3\xb5'

>>>print s1.decode('gbk')

請勿酒後駕車

以上是如何用JAVA將十六進位轉換成字串?感謝!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:docexcel.net。如有侵權,請聯絡admin@php.cn刪除