我得到的含有這樣的循環Matlab代碼保持:平移Matlab的bitget()極值到Python
for n = 1:2^10,
bitget(n-1,10)*2^4;
end;
我的問題是,Matlab的(八度)顯然添加填充比特向右這樣:
octave:15> bitget(5,1:10)
ans =
1 0 1 0 0 0 0 0 0 0
,因此:
octave:14> bitget(5,10)
ans = 0
而蟒不添加這些位,因此產率一個錯誤。
對於這種特殊的情況,我說的對中認爲上述Matlab的線bitget(n-1,10)*2^4;
可以翻譯成蟒蛇爲(lambda x: 1 if x == 2**9 else 0)(n)*2**4
,因爲Matlab的bitget(5,10)
將在我看來,只有產生1,如果n的二進制表示跨越10位,即2^9在這種情況下?