Given an integer, write an algorithm to convert it to hexadecimal. For negative integers, two's complement method is used.
Note:
1.All letters in hexadecimal (a-f
) must be in lowercase.
2.The hexadecimal string must not contain extra leading 0. 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.
3.The given number is guaranteed to fit within the range of a 32-bit signed integer.
4.You must not use any method provided by the library which converts/formats the number to hex directly.
Example :
Input:
26
Output:
"1a"
Approach:
C++
#include <bits/stdc++.h>using namespace std;string toHex(int num){if (num == 0){return "0";}unsigned int n = num;string res;char mp[16] = {'0', '1', '2', '3', '4', '5', '6', '7','8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};while (n != 0){res = mp[(n & 15)] + res;n >>= 4;}return res;}int main(){int n = 26;cout << toHex(n);return 0;}
No comments:
Post a Comment