我想知道为什么在使用bitshift-operators时,为Python中的整数添加一个或多个前导零会导致不同的结果:
In: 10<<1
Out: 20
在整数前添加“0”:
In: 010<<1
Out: 16
答案 0 :(得分:2)
与此同时,我发现答案很简单 - 但也许值得分享:
根据这个answer,将前导零添加到整数将导致Python将其解释为八进制/基数8。
In: int("010",8)
Out: 8
因此,左移八进制(或十进制8),即乘以2 ** 1,导致16
In: 8<<1
Out: 16