정수 감안할 때, 16 진수로이 번호를 변환하는 알고리즘을 작성합니다. 음의 정수를 들어, 우리는 일반적으로 보완 연산 방법을 사용합니다.
참고 :
HEX (AF)를 소문자로해야 모든 문자.
16 진수 문자열은 과도한 선행 0을 포함 할 수 없습니다. 변형 될 수가 0이면 하나의 문자 인 경우 '0'으로 표현되고, 그 밖의 경우를 16 진수 문자열의 첫 번째 문자 0 없습니다.
32 비트의 범위에서 주어진 수의 정수를 체결했다고 확인하십시오.
직접 변환 또는 16 진수 형식의 방법으로 제공하는 디지털 라이브러리를 사용하지 않습니다.
예 1 :
입력 :
26
출력 :
". 1A"
예 2 :
입력 :
-1
출력 :
"FFFFFFFF"
[주] 16 진수에 대응하는 비트 연산, 각각 4 비트를 사용하는 핵심 아이디어.
- 사용
0xf
얻기 위해 (00 ... 01111b)를num
4 인 저를. >>
0의 양수가 오른쪽에서 왼쪽으로, 상기 연산 변위 네거티브 좌우 S.1.- 변위 계산 보장하지 않는다
num==0
(8 이하의 16 진수에 대응)이 32 비트 INT를 위해 필요한.
직접 문자열 연결을 문자열을 사용 ....
string toHex(int num) {
if (num == 0) return "0"; string hex = "0123456789abcdef", ans = ""; while(num && ans.size() < 8){ ans = hex[num & 0xf] + ans; num >>= 4; } return ans; }