405. 數字轉換為十六進制數
題解:
- 首先,我們需要創建一個映射表,將十進制數0-15映射到十六進制數的字符'0'-'f'。
- 然后,我們需要處理負數的情況。對于負數,我們首先將其轉換為補碼形式,然后再進行轉換。
- 接下來,我們將輸入的整數除以16,得到的商和余數分別對應于十六進制數的高位和低位。我們將余數轉換為對應的十六進制字符,然后將商作為新的輸入繼續進行上述操作,直到商為0為止。
- 最后,我們將得到的十六進制字符反轉,就得到了最終的結果。
class Solution:def toHex(self, num: int) -> str:if num == 0:return "0"hex_map = "0123456789abcdef"res = ''for _ in range(8):n = num & 15res = hex_map[n] + resnum = num >> 4if num == 0:breakreturn res.lstrip('0')