LeetCode 405 數字轉化為十六進位制數

2022-09-22 06:11:37 字數 1539 閱讀 5569

問題描述:

給定一個整數,編寫一個演算法將這個數轉換為十六進位制數。對於負整數,我們通常使用 補碼運算 方法。

注意:

十六進位制中所有字母(a-f)都必須是小寫。

十六進位制字串中不能包含多餘的前導零。如果要轉化的數為0,那麼以單個字元'0'來表示;對於其他情況,十六進位制字串中的第一個字元將不會是0字元。 

給定的數確保在32位有符號整數範圍內。

不能使用任何由庫提供的將數字直接轉換或格式化為十六進位制的方法。

示例 1:

輸入:

26輸出:

"1a"

示例 2:

輸入:

-1輸出:

"ffffffff"

方法:

1

class

solution(object):

2def

tohex(self, num):

3"""

4:type num: int

5:rtype: str

6"""

7 hexres=

8if num ==0:

9return"0

"10 dic =

11if num <0:

12 num += 2**32

13while

num:

14 figure = num % 16

15 num /= 16

16if figure >= 0 and figure <=9:

1718

else:19

20 hexres = hexres[::-1]

21return

"".join(hexres)

方法2:瑟瑟發抖

1

class

solution(object):

2def

tohex(self, num):

3"""

4:type num: int

5:rtype: str

6"""

7 ans = ""

8 hexs = '

0123456789abcdef'9

if num == 0: return"0

"10while

num:

11 val = num & 0xf

12 ans +=hexs[val]

13 num = num >> 4 if num > 0 else (num + 0x100000000) >> 4

14return ans[::-1]

2018-09-30 17:21:02