python負數的處理

2021-10-07 22:16:36 字數 603 閱讀 7190

python中的整形以補碼形式儲存。

正數儲存是本身,負數的儲存形式是原碼的二進位制表示加上個負號。

負數的補碼: 負數&0xffffffff

負數補碼轉換為負數形式 : ~(a^0xffffffff)

print bin(-3)

//-0b11

print bin(-3 & 0xffffffff)

//0b11111111111111111111111111111101

例題 面試題 17.01. 不用加號的加法

#  ^是當前數字的和,   &是進製

def add(self, a: int, b: int) -> int:

# 將數字轉為無符號整數

a &= 0xffffffff

b &= 0xffffffff

while b:

a, b = a^b, ((a&b)<<1)&0xffffffff

# 根據範圍判定結果,對映為有符號整型

return a if a<0x80000000 else ~(a^0xffffffff)

桶排序對於負數的處理

關於桶排序的演算法思想就不再敘述了,目前桶排序主要用於在o n 的時間內處理正數的排序問題,然而一旦遇到負數問題,就只能把數分成兩堆,對正負數分開去排序,這樣無疑比較麻煩。今天我做了乙個桶排序的題,對於輸入都是32位整形數列進行桶排序,值想到了乙個可以同時處理正負數的演算法。通常我們的輸入都是十進位...

對負數取餘的處理

自 在vc 中計算 1 3 其結果是 1 而不是 我所要的2。在格仔座標中,如果希望超過邊界的數從另一面回到視野中,取余是非常有用的作法 原數 2 10 1 2 34 取餘120 1201 1 3 1 2即 3 2 1 而由於vc 在取整的時候,預設是將小數部分捨去,所以 1 3 0.333 0 於...

python負數報錯 Python中列表的切片

切片 slice 用來獲取列表中的片段,即原始列表的子列表。切片用被方括號 括起來且用冒號 分隔的數字來表示 fruits 0 3 獲取列表中的前3項 fruits 2 1 使用負數切片 strawberry 注意,切片包含索引項的起始值,而不包含結束值。因此,使用切片fruits 0 3 獲取的是...