---- 진수 디지털 비트 컴퓨팅

정수 감안할 때, 16 진수로이 번호를 변환하는 알고리즘을 작성합니다. 음의 정수를 들어, 우리는 일반적으로 보완 연산 방법을 사용합니다.

참고 :

HEX (AF)를 소문자로해야 모든 문자.
16 진수 문자열은 과도한 선행 0을 포함 할 수 없습니다. 변형 될 수가 0이면 하나의 문자 인 경우 '0'으로 표현되고, 그 밖의 경우를 16 진수 문자열의 첫 번째 문자 0 없습니다. 
32 비트의 범위에서 주어진 수의 정수를 체결했다고 확인하십시오.
직접 변환 또는 16 진수 형식의 방법으로 제공하는 디지털 라이브러리를 사용하지 않습니다.
예 1 :

입력 :
26

출력 :
". 1A"
예 2 :

입력 :
-1

출력 :
"FFFFFFFF"

 

 

[주] 16 진수에 대응하는 비트 연산, 각각 4 비트를 사용하는 핵심 아이디어.

  • 사용 0xf얻기 위해 (00 ... 01111b)를 num4 인 저를.
  • >>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; }

추천

출처www.cnblogs.com/pacino12134/p/11057855.html