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.
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 .. –
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 –
-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. –