2015-01-30 4 views
1

십진수를 10 진수로 변환하려고 시도했지만 아래 스 니펫이 잘못된 값을 반환합니다. 16 진수 값은 다음과 같습니다 BA51A114 및 예상 결과는 다음과 같습니다이 반환 3125911828.십진수 값이 유효하지 않습니다.

string hex = "BA51A114"; 
MessageBox.Show(int.Parse(hex, System.Globalization.NumberStyles.HexNumber).ToString()); 

: -1169055468. 16 진수로 다시 변환하면 값은 FFFFFFFFBA51A114가됩니다.

+9

'long'으로 구문 분석을 시도하십시오. 당신은'int'의 범위를 넘는 약 10 억 –

+0

만큼 오버플로하고 있거나'uint' – khlr

답변

7

당신은 약 억으로 bounds of an int을 범람하고 이상이다. 당신은 long로 구문 분석해야합니다

string hex = "BA51A114"; 
MessageBox.Show(long.Parse(hex, System.Globalization.NumberStyles.HexNumber).ToString()); 

또는 khlr로 포인트를 밖으로,이 경우에는 uint도 충분할 것이다. 어쨌든 10 억 정도는 ...

관련 문제