표제는 0x320000dd와 같은 16 진수를 10 진수로 변환하려고합니다. 내 코드는 양수에 대해서만 작동하지만 음수 10 진수를 나타내는 16 진수에서는 실패합니다. 여기 내 코드의 발췌 부분이 있습니다 :십진수로 정확하게 16 진수를 변환합니다. (또한 음수)
cin>>hex>> x;
unsigned int number = x;
int r = number & 0xffffff;
입력 내용은 16 진수이며, 컴퓨터는 자동으로 정수로 변환합니다. 내가 뭘 하려는지 16 진수의 피연산자를 받고 있으므로 마지막 24 비트. 0x32fffdc9 또는 0x32ffffff와 같은 음수 값에 대해 제 코드가 작동하도록 할 수 있습니까? 고마워요!
는편집 : 나는 내 출력이되고 싶습니다
: 0x32fffdc9 -> -567 또는 는 0x32ffffff -> -1
그래서 그냥 일반 진수 값 대신 그것은 나에게 16,776,649을 제공합니다 상위 예제는 16777215입니다.
@kiner_shah hex는 std :: hex가 가장 가능성이 큽니다. – Borgleader
@Borgleader, 알겠습니다! :-) –
오, 미안하지만, 나는 네임 스페이스 표준을 사용했다. 내 코드에서. 그래서 std :: hex는 아무것도 변경하지 않을 것입니다. :) – Jennan