web-dev-qa-db-fra.com

Comment obtenir une valeur hexadécimale à partir d'un entier décimal en Java?

Je ne sais pas comment générer un caractère hexadécimal "0x83" à partir d'une valeur entière en Java.

J'ai besoin d'une valeur "0x83" pour représenter une lettre dans l'alphabet cyrillique (cette lettre: ѓ), afin de l'envoyer (la lettre) à mon imprimante. Lors de la conversion de 131 (0x83 en décimal) en hexadécimal avec mon convertisseur (ci-dessous), j'obtiens trois nombres: 0x31, 0x33 et 0x31.

public String toHex(String arg) {
    return String.format("%x", new BigInteger(arg.getBytes()));
}

J'ai besoin d'obtenir 0x83 de cette conversion.

13
Ballon

Si vous essayez de convertir un entier 131 en une chaîne hexadécimale, vous pouvez essayer

Integer.toHexString( 131 )

Il renverra "83" en tant que chaîne.

40
Nishan

Voici un exemple:

String str = Integer.toHexString(131);
System.out.println(str);
12
Ankit
String cyrillic = Character.toString((char)0x83)
2
JJ3

Je ne vois aucun problème lors de la conversion:

System.out.println(Integer.toHexString(131));

renvoie 83.

0
ilalex

Deux possibilités, votre imprimante a besoin de 0x83 comme octet ou comme chaîne/caractère

Envoyer en octet:

int Cyrillic_int = 131; 
byte Cyrillic = (byte) Cyrillic_int;

Ou envoyez une représentation sous forme de chaîne de 0x83:

int Cyrillic_int = 131;
String Cyrillic = Integer.toHexString(131);
0
Hammad

Avez-vous essayé de vérifier le Java Integer API . Voici quelques exemples:

0
posdef