2010-12-16 167 views
-2

comment ajouter deux chaînes Hexa en C# .netcomment ajouter deux chaînes Hexa en C# .net

chaîne

HEX1 = "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB";

chaîne hex2 = "BBBBBBBBBBBBBBBBBBBBBBBBBBBBB";

Je veux obtenir une valeur décimale en ajoutant ces deux valeurs hexa.

+0

Je suppose que cela va avoir beaucoup de downvotes et être fermé comme "pas une vraie question" sauf si vous faites des changements substantiels à votre question .. –

+0

exactement vous devez spécifier au moins où sont les valeurs hexadécimales, voir ceci divers exemples: http://msdn.microsoft.com/en-us/library/bb311038.aspx –

+0

-1: Cela fait deux heures. Modifiez votre question, au moins montrez des exemples de chaînes que vous essayez d'ajouter. Ou acceptez la réponse donnée par @Eric Fortes puisque cela semble correct sur la base des quelques informations que vous avez données jusqu'à présent. –

Répondre

3
int value = Convert.ToInt32(hexString1, 16) + Convert.ToInt32(hexString2, 16); 
3

Compte tenu de la longueur de vos chaînes (32 caractères) vos numéros ne rentre pas dans un decimal encore moins long ou int. Une solution pour cela serait d'utiliser le type de données .Net 4 BigInteger. Je ne peux pas le tester ici, mais le code ressemblerait à ceci

BigInteger num1 = BigInteger.Parse("0" + hex1, NumberStyles.HexNumber); 
BigInteger num2 = BigInteger.Parse("0" + hex2, NumberStyles.HexNumber); 
BigInteger result = num1 + num2; 

Si vous n'êtes pas sur .Net 4, vous devrez utiliser un type de données qui permet de stocker des numéros de cette ampleur par exemple double. Comme un double n'a que 8 octets, votre résultat perdra de la précision.

EDIT

Je l'ai testé maintenant. Il s'avère que vous devez définir une référence à System.Numerics.dll et ajouter une instruction using pour l'espace de noms System.Numerics. De plus, si les nombres sont positifs, vous devrez ajouter une valeur de "0" aux chaînes pour éviter qu'elles soient analysées comme des nombres négatifs.

+1

beaucoup.je vais l'essayer. – BayoteYC