ホームページ > 記事 > コンピューターのチュートリアル > JAVAを使用して16進数を文字列に変換するにはどうすればよいですか?ありがたい!
プライベート静的文字列 hexString = "0123456789ABCDEF";
public static void main(String[] args) {
System.out.println(encode("中文"));
System.out.println(decode(encode("中文")));
}
/*
* 文字列をすべての文字 (中国語を含む) に適した 16 進数にエンコードします。
*/
パブリック静的文字列エンコード(文字列str) {
// デフォルトのエンコーディングに基づいてバイト配列を取得します
byte[] バイト = str.getBytes();
StringBuilder sb = 新しい 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 進数を文字列にデコードし、すべての文字 (中国語を含む) に適用できます
*/
パブリック静的文字列デコード(文字列バイト) {
ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length() / 2);
// 2 桁の 16 進整数をそれぞれ 1 バイトに組み立てます
for (int i = 0; i
baos.write((hexString.indexOf(bytes.charAt(i))
.indexOf(bytes.charAt(i 1))));
新しい文字列を返します(baos.toByteArray());
}
個人テストも可能、中国語もサポート! ! !役に立つ場合は、
を忘れずに採用してくださいこのメソッドを使用して、渡された 16 進数からなる文字列を UTF-8 形式の文字列に変換します。
パブリック静的文字列 toStringHex1(String s) {byte[] baKeyword = 新しいバイト[s.length() / 2];
for (int i = 0; i ###試す {### baKeyword[i] = (バイト) (0xff & Integer.parseInt(s.substring(
)
i * 2, i * 2 2), 16));} catch (例外 e) {
e.printStackTrace();
}
}
###試す {###
s = new String(baKeyword, "utf-8");// UTF-16le:Not} catch (例外 e1) {
e1.printStackTrace();
}
###戻り値;###
}C言語プログラムで16進数を文字に変換する方法:
あなたの問題は数字を文字に変換することだけだと思いますよね? それなら、全文の複数行のソース コードを作成するのは手伝いません。私は 1 行の変換を行いました。外側にループをネストできます。レイヤーを作成し、2 次元配列を使用して全文複数行 ASCII コード変換を実現します:
#「Stdio.h」を含める
#「Conio.h」を含める
{
int num[10],i=0;
while(getchar() != '\n')
{
getchar();
scanf("%x",&num[i]);
printf("%c",num[i]);
###私 ;###
}getch();
0を返す;
}
原則は次のとおりです:
毎回の 4 バイトの形式は \xyy の形式です。16 進数を読み取り、scanf("%x",&num[i]); ステートメントを使用するだけです。16 進数は読み取ることができますで、連続する 16 進数をすべてループで取り出して 1 次元配列に格納できます。
出力するのが面倒だったので、直接読み込んで出力しましたが、ここが重要ではなく、printf("%c",num[i]) で出力することが重要です。コンパイラが自動的に16進数をASCIIコードに対応した文字に変換して出力します。
理解できましたか? フォーマットされた入力と出力を使用して 16 進数を読み取り、文字を出力します。 (2 つの getchar() はそれぞれ文字 \ と x を読み取ります~~)
Pythonを使用して16進数のASCコードを文字列表示に変換する方法
#16 進文字を 2 進文字に変換する
def str2byte(s):
base='0123456789ABCDEF'
i=0
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:
何も返さない
s1 =chr((b1 戻り 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を使用して16進数を文字列に変換するにはどうすればよいですか?ありがたい!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。