穿梭在數字王國:Python進制轉換奇遇記
想象一下,你是一位勇敢的探險家,正在穿越神秘的"數字王國"。在這個王國里,不同的地區使用著不同的語言(或者說,進制)。二進制村的居民只懂"0"和"1";八進制鎮的人們使用0到7的數字;而十六進制城的公民則熟悉0-9以及A-F這些符號。作為一名翻譯官,你的任務是幫助這些不同地區的居民相互交流——這正是Python進制轉換的真實寫照!
一、認識數字王國的居民
在我們開始旅程前,先來認識一下這個王國的主要居民:
# 在數字王國,同一個數有不同的表示方式
the_number = 42 # 這是我們熟悉的十進制表示# 在二進制村,它這樣表示
binary_village = "101010" # (2^5 + 2^3 + 2^1 = 32 + 8 + 2 = 42)# 在八進制鎮,它是
octal_town = "52" # (5×8^1 + 2×8^0 = 40 + 2 = 42)# 在十六進制城,它寫作
hex_city = "2A" # (2×16^1 + 10×16^0 = 32 + 10 = 42)
王國的老者告訴你:“不同地區的表示方式不同,但本質上都是同一個數。理解了這點,你就掌握了進制轉換的核心奧秘。”
二、十進制向其他地區的旅行(十進制轉其他進制)
作為一名來自十進制王國的旅行者,你首先需要學會如何用其他地區的語言表達自己:
# 你想把十進制數42翻譯成其他"語言"
decimal_num = 42
print(f"我在十進制王國的名字是: {decimal_num}")# 前往二進制村
binary = bin(decimal_num) # Python內置的翻譯官
print(f"到了二進制村,我要自我介紹: {binary}") # 輸出: 0b101010
# 其中'0b'是二進制的標志,就像村口的路標# 拜訪八進制鎮
octal = oct(decimal_num)
print(f"在八進制鎮,我的名片寫著: {octal}") # 輸出: 0o52
# '0o'是八進制的標志# 游歷十六進制城
hexadecimal = hex(decimal_num)
print(f"在十六進制城,我的通行證是: {hexadecimal}") # 輸出: 0x2a
# '0x'是十六進制的標志
有時候,你不想帶著這些"標志"(0b, 0o, 0x),想要更融入當地文化:
# 去掉"外鄉人"的標志,更像當地人
print(f"融入二進制村的生活: {binary[2:]}") # 輸出: 101010
print(f"像八進制鎮居民一樣說話: {octal[2:]}") # 輸出: 52
print(f"使用十六進制城的方言: {hexadecimal[2:]}") # 輸出: 2a# 另一種方式是使用format()這位萬能翻譯官
print(f"二進制村的純正口音: {format(decimal_num, 'b')}") # 輸出: 101010
print(f"地道的八進制鎮方言: {format(decimal_num, 'o')}") # 輸出: 52
print(f"十六進制城的貴族說法: {format(decimal_num, 'X')}") # 輸出: 2A (大寫更高貴)
三、回到十進制王國(其他進制轉十進制)
當你收集了來自各地的信息,需要翻譯回自己熟悉的語言:
# 一位二進制村的村民給你