穿梭在数字王国:Python进制转换奇遇记

穿梭在数字王国: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 (大写更高贵)

三、回到十进制王国(其他进制转十进制)

当你收集了来自各地的信息,需要翻译回自己熟悉的语言:

# 一位二进制村的村民给你
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

trust Tomorrow

感谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值