Bilehifting有和没有前导零

时间:2014-05-14 13:05:24

标签: python bit-manipulation

我想知道为什么在使用bitshift-operators时,为Python中的整数添加一个或多个前导零会导致不同的结果:

In:  10<<1
Out: 20

在整数前添加“0”:

In:  010<<1
Out: 16

1 个答案:

答案 0 :(得分:2)

与此同时,我发现答案很简单 - 但也许值得分享:

根据这个answer,将前导零添加到整数将导致Python将其解释为八进制/基数8。

In:  int("010",8)
Out: 8

因此,左移八进制(或十进制8),即乘以2 ** 1,导致16

In:  8<<1
Out: 16