57 lines
1.4 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Source : https://leetcode.com/problems/convert-a-number-to-hexadecimal/
// Author : Hao Chen
// Date : 2016-11-12
/***************************************************************************************
*
* Given an integer, write an algorithm to convert it to hexadecimal. For negative
* integer, twos complement method is used.
*
* Note:
*
* All letters in hexadecimal (a-f) must be in lowercase.
* The hexadecimal string must not contain extra leading 0s. If the number is zero, it
* is represented by a single zero character '0'; otherwise, the first character in the
* hexadecimal string will not be the zero character.
* The given number is guaranteed to fit within the range of a 32-bit signed integer.
* You must not use any method provided by the library which converts/formats the
* number to hex directly.
*
* Example 1:
*
* Input:
* 26
*
* Output:
* "1a"
*
* Example 2:
*
* Input:
* -1
*
* Output:
* "ffffffff"
***************************************************************************************/
class Solution {
public:
string toHex(int num) {
if (num == 0) return "0";
unsigned int x = num;
string result;
for(;x > 0; x/=16) {
int n = x % 16;
char c;
if (n < 10) c = n + '0';
else c = 'a' + n - 10 ;
result = c + result;
}
return result;
}
};