首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么在二进制文字中需要前导0,例如'0b10101000'?

为什么在二进制文字中需要前导0,例如'0b10101000'?
EN

Stack Overflow用户
提问于 2019-01-10 10:37:23
回答 3查看 108关注 0票数 1

我对0b10101000中的主要0感到困惑

它似乎不是一个符号符号。

代码语言:javascript
运行
复制
In [1]: bin(168)
Out[1]: '0b10101000'

In [2]: int(bin(168), 2)
Out[2]: 168

我认为这应该是足够的,而且肯定会更简洁,比如说b10101000

为什么需要领先的0

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-01-10 10:45:36

这不是为了混淆二进制文字和变量。

您可以将数字表示为任意基数的文字(例如0b ->二进制,0x ->十六进制):

代码语言:javascript
运行
复制
0b100
>>>4

0x100
>>>256

当没有前导0时,问题就出现了。Python对变量的命名约定是它必须以字母字符开头。有了前导0,解释器就可以判断它是文字还是变量。

票数 7
EN

Stack Overflow用户

发布于 2019-01-10 10:44:42

这样会更简洁,但是如果在代码中使用b10101000,Python会将其解释为变量名,而将0b10101000解释为二进制数。

如果Python向您表示值的方式与它期望您在编写的代码中向它表示值的方式不同,这将会令人困惑(对于您,程序员来说)。

票数 2
EN

Stack Overflow用户

发布于 2019-01-10 10:43:02

为什么必须使用def而不是df,或者使用class而不是cls?这就是语言语法所规定的。它是由语言设计强制执行的。

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54121237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档