Lutz的“ Learning Python”中ord()实现背后的逻辑

我不能全神贯注于本书给出的ord()函数的示例实现:

>>> B = '1101' # Convert binary digits to integer with ord
>>> I = 0
>>> while B != '':
... I = I * 2 + (ord(B[0]) - ord('0'))
... B = B[1:]
...
>>> I
13

尤其是我无法理解通过此计算'I = I * 2 +(ord(B [0])-ord('0'))'能实现什么?有人可以逐步解释该程序的作用吗?

评论