Rumah  >  Artikel  >  tutorial komputer  >  Bagaimana untuk menukar heksadesimal kepada rentetan menggunakan JAVA? bersyukur!

Bagaimana untuk menukar heksadesimal kepada rentetan menggunakan JAVA? bersyukur!

WBOY
WBOYke hadapan
2024-01-16 09:30:14936semak imbas

Bagaimana untuk menukar heksadesimal kepada rentetan menggunakan JAVA? bersyukur!

Sila beritahu saya cara menukar perenambelasan kepada rentetan dalam JAVA Terima kasih

String hexString statik peribadi = "0123456789ABCDEF";

utama kekosongan statik awam(String[] args) {

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

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

}

/*

* Kod rentetan ke dalam nombor perenambelasan, sesuai untuk semua aksara (termasuk bahasa Cina)

*/

enkod String statik awam(String str) {

// Dapatkan tatasusunan bait mengikut pengekodan lalai

bait[] bait = str.getBytes();

StringBuilder sb = StringBuilder baharu(bait.panjang * 2);

// Uraikan setiap bait dalam tatasusunan bait menjadi integer heksadesimal 2 digit

untuk (int i = 0; i

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

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

}

kembali sb.toString();

}

/*

* Nyahkod nombor perenambelasan kepada rentetan, sesuai untuk semua aksara (termasuk bahasa Cina)

*/

menyahkod rentetan statik awam(bait rentetan) {

ByteArrayOutputStream baos = ByteArrayOutputStream(bait.length() / 2);

// Himpunkan setiap 2 digit integer heksadesimal menjadi satu bait

untuk (int i = 0; i

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

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

kembalikan String baharu(baos.toByteArray());

}

Ujian peribadi boleh dilaksanakan dan menyokong bahasa Cina! ! ! Sila ingat untuk mengamalkannya jika ia berguna

Bagaimana untuk menukar nombor perenambelasan kepada rentetan dalam ASCII dalam JAVA

Gunakan kaedah ini untuk menukar rentetan nombor perenambelasan yang dihantar ke rentetan dalam format UTF-8

String statik awam keStringHex1(String s) {

bait[] baKata kunci = bait baharu[s.length() / 2];

untuk (int i = 0; i

cuba {

baKeyword[i] = (bait) (0xff & Integer.parseInt(s.substring(

)

i * 2, i * 2 + 2), 16));

} tangkapan (Pengecualian e) {

e.printStackTrace();

}

}

cuba {

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

} tangkapan (Pengecualian e1) {

e1.printStackTrace();

}

kembali s;

}

Cara menukar perenambelasan kepada aksara dalam program bahasa C:

Saya rasa masalah anda hanyalah menukar nombor kepada aksara, bukan? Saya tidak akan membantu anda membuat kod sumber berbilang baris bagi teks penuh yang saya buat satu baris penukaran Anda boleh menyarangkan satu gelung di lapisan luar gunakan Tatasusunan 2D untuk mencapai penukaran kod ASCII berbilang baris bagi teks penuh:

#include "Stdio.h"

#include "Conio.h"

int utama(kosong)

{

nombor int[10],i=0;

while(getchar() != 'n')

{

getchar();

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

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

i++;

}

getch();

kembali 0;

}

Prinsipnya begini:

Format empat bait anda setiap kali adalah dalam bentuk xyy Saya hanya perlu membaca dalam nombor heksadesimal saya boleh menggunakan penyataan scanf("%x",&num[i]); nombor perenambelasan, semua nombor perenambelasan dalam satu baris dikeluarkan dalam gelung dan disimpan dalam tatasusunan satu dimensi.

Dari segi output, saya malas dan membacanya secara langsung dan mengeluarkannya Namun, ini bukan kuncinya untuk mengeluarkan pernyataan dengan printf("%c",num[i]); tukar heksadesimal Nombor sistem ditukar kepada aksara yang sepadan dengan kod dan output ascii.

Sekarang adakah anda faham? Ia menggunakan input dan output berformat untuk membaca nombor perenambelasan dan aksara output. (Dua getchar() digunakan untuk membaca aksara dan x masing-masing~~)

Cara menukar kod ASC heksadesimal kepada paparan rentetan menggunakan python

#Tukar aksara heksadesimal kepada aksara binari

def str2byte(s):

base='0123456789ABCDEF'

i=0

s = s.upper()

s1=''

sementara saya c1=s[i]

c2=s[i+1]

i+=2

b1=base.find(c1)

b2=base.find(c2)

jika b1 == -1 atau b2 == -1:

kembali Tiada

s1+=chr((b1 kembalikan s1

s = 'C7 EB CE F0 BE C6 BA F3 BC DD B3 B5'.ganti (' ', '') #Alih keluar ruang

s1 = str2bait

cetak s1.decode('gbk') #Decode dan output dengan pengekodan gbk

#hasil

>>>s1

'xc7xebxcexf0xbexc6xbaxf3xbcxddxb3xb5'

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

Tolong jangan minum dan memandu

Atas ialah kandungan terperinci Bagaimana untuk menukar heksadesimal kepada rentetan menggunakan JAVA? bersyukur!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:docexcel.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam