在 Python 中打印数字的二进制表示

使用格式化的字符串文字来打印数字的二进制表示,例如 print(f'{number:b}')。 格式化字符串文字使我们能够使用格式规范迷你语言,该语言可用于获取数字的二进制表示形式。

number = 13

# ✅ 将数字格式化为二进制 (in base 2)
string = f'{number:b}'
print(string)  # 👉️ 1101

# ✅ 将整数转换为前缀为 0b 的二进制字符串
string = bin(number)
print(string)  # 👉️ 0b1101

# ✅ 将整数转换为前缀为 0x 的小写十六进制字符串
string = hex(number)
print(string)  # 👉️ 0xd

在 Python 中打印数字的二进制表示

第一个示例使用格式化字符串文字。

格式化字符串文字 f-strings 让我们通过在字符串前加上 f 来在字符串中包含表达式。

var1 = 'fql'
var2 = 'zadmei'

result = f'{var1}{var2}'
print(result)  # 👉️ fqlzadmei

确保将表达式用大括号括起来 – {expression}

格式化字符串文字还使我们能够在表达式块中使用格式规范迷你语言。

number = 13

string = f'{number:b}'
print(string)  # 👉️ 1101

b 字符代表二进制格式并以 2 为基数输出数字。

我们可以在 b 字符前加上一个数字来指定字符串的宽度。

number = 13

string = f'{number:8b}'
print(repr(string))  # 👉️ '    1101'

如果我们需要用零而不是空格填充数字,请在冒号后添加一个零。

number = 13

string = f'{number:08b}'
print(repr(string))  # 👉️ '00001101'

如有必要,我们还可以在结果前加上 0b 前缀。

number = 13

string = f'0b{number:08b}'
print(repr(string))  # 👉️ '0b00001101'

或者,我们可以使用 bin() 函数。

number = 13

string = bin(number)
print(string)  # 👉️ 0b1101

print(bin(3)) # 👉️ 0b11
print(bin(10)) # 👉️ 0b1010

bin 函数将整数转换为前缀为 0b 的二进制字符串。

我们还可以使用格式化字符串文字来添加或删除 0b 前缀。

number = 13

string = f'{number:#b}'
print(string)  # 👉️ 0b1101

string = f'{number:b}'
print(string)  # 👉️ 1101

当与整数一起使用时,# 选项将相应的前缀添加到二进制、八进制或十六进制输出中,例如 0b0o0x

如果需要获取数字的十六进制表示,请使用 hex() 函数。

number = 13

string = hex(number)
print(string)  # 👉️ 0xd

hex 函数将整数转换为前缀为 0x 的小写十六进制字符串。

我们还可以使用格式化字符串文字将整数转换为带或不带前缀的大写或小写十六进制字符串。

number = 13

string = f'{number:#x}'
print(string)  # 👉️ 0xd

string = f'{number:x}'
print(string)  # 👉️ d

string = f'{number:X}'
print(string)  # 👉️ D

x字符代表十六进制格式。 它输出以 16 为基数的数字,对 9 以上的数字使用小写字母。

X 字符的作用相同,但对 9 以上的数字使用大写字母。