 # Convert a Number to Hexadecimal solution using TypeScript

This post outlines my TypeScript solution to the LeetCode "Convert a Number to Hexadecimal" question using an iterative bitwise solution.

Algorithm: The solution iterates over the base 10 input to find a hexadecimal representation of the number by doing the following:

• Create a map of decimal digits to hexadecimal digits. This can be represented by a string of every hexadecimal digit.
• Take the last 4 binary digits (a nibble) of the input, use its decimal value as an index of the created map to retrieve its hexadecimal value. Prepend the hexadecimal value to returned string.
• Shift the input 4 binary digits to the right.
• Continue taking and shifting binary digits (the above 2 steps) until the input is 0.

Time Complexity: Because the input gets divided by 16 on every iteration, the time complexity is O(log(n)) where n represents the size of the input.

Space Complexity: Because the stored hex value is the remainder of dividing the input by 16 on every iteration, the space complexity is also O(log(n)) where n represents the size of the input.

``````/**
* 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.
*
* Time Complexity: O(log(n))
* Space Complexity: O(log(n))
*
* toHex(26) // "1a"
* toHex(4)  // "4"
* toHex(-1) // "ffffffff"
*/
function toHex(num: number): string {
const map = "0123456789abcdef";
let hex = num === 0 ? "0" : "";
while (num !== 0) {
hex = map[num & 15] + hex;
num = num >>> 4;
}
return hex;
}
``````

## more LeetCode posts Design HashSet solution using TypeScript Fizz Buzz solution using TypeScript Pascal's Triangle solution using TypeScript Min Stack solution using TypeScript Symmetric Tree solution using TypeScript Same Tree solution using TypeScript