2011-02-13 4 views
3

J'ai une chaîne contenant une valeur hexadécimale. Maintenant, j'ai besoin du contenu de cette chaîne contenant l'hexadécimal en tant que variable byte. Comment dois-je faire cela sans changer la valeur hexadécimale?Comment convertir une chaîne contenant une paire hexadécimale en octet?

+0

http://stackoverflow.com/questions/311165/how-do-you-convert-byte-array-to-hexadecimal-string-and-vice-versa-in-c – Dialecticus

+0

Pas un doublon (par C#) autant que je peux dire. Il existe de nombreuses variantes, mais celles-ci sont spécifiques ("xx" -> octet) et justifient une réponse plus simple qu'un certain nombre de scénarios plus complexes. –

Répondre

6

Un alternative aux options enregistrée jusqu'à maintenant:

byte b = Convert.ToByte(text, 16); 

Notez que ce retour 0 si text est nulle; cela peut ou peut ne pas être le résultat que vous voulez.

+1

Merde, j'ai même regardé la méthode 'Convert.ToByte' mais je n'ai pas vu cette surcharge qui prend la base comme paramètre ... –

0

S'il est juste un seul octet dans la chaîne, vous pouvez le faire:

 string s = "FF"; 
     byte b; 


     if (byte.TryParse(s, NumberStyles.HexNumber, null, out b)) 
     { 
      MessageBox.Show(b.ToString()); //255 
     } 
2
String strHex = "ABCDEF"; 
Int32 nHex = Int32.Parse(strHex, NumberStyles.HexNumber); 
Byte[] bHex = BitConverter.GetBytes(nHex); 

Je pense que c'est ce que vous cherchez. Si ce n'est pas le cas, publiez une mise à jour avec une définition plus explicite de ce que vous recherchez.

Questions connexes