2010-09-14 25 views
6

Otrzymuję ciąg szesnastkowy, który musi zostać przekonwertowany na podpisaną 8-bitową liczbę całkowitą. Obecnie konwertuję używając Int16/Int32, co oczywiście nie daje mi wartości ujemnej dla 8-bitowej liczby całkowitej. Jeśli otrzymam wartość 255 w Hex, jak mogę przekonwertować to na -1 w systemie dziesiętnym? Zakładam, że chcę użyć sbyte, ale nie jestem pewien, jak poprawnie uzyskać tę wartość.Jak przekonwertować ciąg szesnastkowy na liczbę całkowitą ze znakiem?

+2

http://msdn.microsoft.com/en-us/library/bb311038.aspx –

+0

związane i z wielką odpowiedzi, https://stackoverflow.com/questions/4275440/how-to-convert-hex-string -to-hex-number – barlop

Odpowiedz

0

Moje rozwiązanie było umieścić najpierw wziąć pierwszy 8 bitów 16-bitowej liczby całkowitej i zapisać je w sbajtach.

2

Trzeba wykonać unchecked obsadę, tak:

sbyte negativeOne = unchecked((sbyte)255); 
+0

Dlaczego zostało to odrzucone? – SLaks

+0

Chyba dlatego, że OP poprosił o przekonwertowanie "STRING na liczbę całkowitą ze znakiem". W każdym razie Twoja odpowiedź była dla mnie pomocna. Dziękuję Ci! :) –

Powiązane problemy