leetcode 405. Convert a Number to Hexadecimal 十进制转化十六进制
Given an integer, write an algorithm to convert it to hexadecimal. For negative integer, two’s 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”
这道题题意十分简单,就是做一个十六进制的转换,对于C++直接取值转换即可
代码如下:
#include <iostream>
#include <vector>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include <string>
#include <climits>
#include <algorithm>
#include <sstream>
#include <bitset>
using namespace std;
class Solution
{
public:
string toHex(int num)
{
if (num == 0)
return "0";
const string HEX = "0123456789abcdef";
string result;
int count = 0;
while (num!=0 && count < 8)
{
result = HEX[(num & 0xf)] + result;
num >>= 4;
count++;
}
return result;
}
};
还没有评论,来说两句吧...