C # convertir Char en octet (représentation hexadécimale)
Cela semble être un problème facile, mais je ne peux pas comprendre.
J'ai besoin de convertir ce personnage en octet(représentation hexadécimale), mais si j'utilise
byte b = Convert.ToByte('<');
Je reçois 60 (représentation décimale) au lieu de 3c.
5 réponses
60 == 0x3C
.
Vous avez déjà votre bonne réponse mais vous la regardez de la mauvaise façon.
0x
est le préfixe hexadécimal3C
est 3 x 16 + 12
, Vous pouvez utiliser les BitConverter.ToString
méthode pour convertir un tableau d'octets en hexadécimal chaîne:
string hex = BitConverter.ToString(new byte[] { Convert.ToByte('<') });
, Ou simplement:
string hex = Convert.ToByte('<').ToString("x2");
Obtenez 60 (représentation décimale) au lieu de 3c.
Non, vous n'avez aucune représentation. Vous obtenez un byte
contenant la valeur 60 / 3c dans une représentationinterne . Lorsque vous le regardez , c'est-à-dire lorsque vous le convertissez en chaîne (explicitement avec ToString()
ou implicitement), vous obtenez la représentation décimale 60.
Ainsi, vous devez vous assurer que vous explicitement convertir l'octet string, spécification de la base, vous souhaitez. ToString("x")
, par exemple convertira un nombre enreprésentation hexadécimale :
byte b = Convert.ToByte('<');
String hex = b.ToString("x");
Vous voulez convertir la valeur numérique en hexadécimal en utilisant ToString("x")
:
string asHex = b.ToString("x");
Cependant, sachez que le code pour convertir le caractère "