第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

帶有故意溢出的python 32位和64位整數數學

帶有故意溢出的python 32位和64位整數數學

郎朗坤 2021-03-11 14:18:03
在32位和64位進行整數數學運算的最佳方法是什么,以便像C語言一樣發(fā)生溢出?例如(65536 * 65536 + 1)*(65536 * 65536 + 1)在64位數學運算中應為0x0000000200000001,而不是其確切值(不溢出)0x10000000200000001。
查看完整描述

2 回答

?
蕭十郎

TA貢獻1815條經驗 獲得超13個贊

只是&將結果與相應的32位或64位掩碼(0xffffffff0xffffffffffffffff)。


查看完整回答
反對 回復 2021-03-26
?
呼喚遠方

TA貢獻1856條經驗 獲得超11個贊

使用具有適當整數大小的NumPy,并且溢出更多為C,例如:


32位:


>>> np.uint32(2**32-3) + np.uint32(5)

__main__:1: RuntimeWarning: overflow encountered in uint_scalars

2

64位:


>>> i64=np.uint64(65536*65536+1)

>>> hex(i64*i64)

'0x200000001L'

與Python的本地int進行比較:


>>> hex((65536*65536+1)*(65536*65536+1))

'0x10000000200000001L'

您可以看到NumPy正在按照您的意愿進行。


查看完整回答
反對 回復 2021-03-26
  • 2 回答
  • 0 關注
  • 256 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號