Je reçois une chaîne hexadécimale qui doit être convertie en un entier signé de 8 bits. Actuellement, je convertis en utilisant Int16/Int32, ce qui ne va évidemment pas me donner une valeur négative pour un entier de 8 bits. Si je reçois la valeur 255 en hexadécimal, comment puis-je convertir cela en -1 en décimal? Je suppose que je veux utiliser un sbyte, mais je ne suis pas sûr de savoir comment obtenir cette valeur correctement.Comment convertir une chaîne hexadécimale en entier signé?
Répondre
Ma solution était de mettre le premier prendre la première 8 bits de l'entier 16 bits et stockez-les dans un octet.
Vous devez effectuer une unchecked
casting, comme celui-ci:
sbyte negativeOne = unchecked((sbyte)255);
Pourquoi cela a-t-il été réduit? – SLaks
Je suppose que c'est parce que OP demandait de convertir "STRING en entier signé". Quoi qu'il en soit, votre réponse m'a été utile. Je vous remercie! :) –
Vous pouvez utiliser Convert.ToSByte
Par exemple:
string x = "aa";
sbyte v = Convert.ToSByte(x, 16);
http://msdn.microsoft.com/en-us/library/bb311038.aspx –
liés et avec de bonnes réponses, https://stackoverflow.com/questions/4275440/how-to-convert-hex-string -to-hex-number – barlop