我瞭解到,在Python中,整數精度僅限於硬件的約束條件。如果您要使用2的補碼來表示帶符號的整數,則符號擴展將永遠持續。 Python使用符號位來表示它們嗎?或者是其他東西?在Python中如何表示-1(或任何負值)?
3
A
回答
3
CPython(最常見的實現方式)將整數存儲爲PyLong
類型,其中包含任意數量的無符號數的「塊」。存在於每個PyVarObject
中的通用字段ob_size
中存儲了多少件的計數。該字段爲described爲:
對於靜態分配的類型對象,應將其初始化爲零。對於動態分配的類型對象,此字段具有特殊的內部含義。
而且確實PyLong
,其含義是比較特別:它是在件數的計數,但是當數字爲負,ob_size
爲負。在PyLong_FromDouble()
更清楚地https://github.com/python/cpython/blob/master/Objects/longobject.c#L73或許,在這裏:
你可以看到它在行動_PyLong_Negate()
,這裏https://github.com/python/cpython/blob/master/Objects/longobject.c#L328 - 注意Py_SIZE()
只是爲ob_size
領域的訪問。
1
Here是來自Laurent Luce的關於Python整數的博客文章。它看起來像(在最常見的Python實現中,CPython),整數存儲爲有符號的long
值,但爲了更快訪問而管理的非常小的值除外。 \
相關問題
- 1. 如何在HTML中表示負數
- 2. 我如何解釋Python中的負值?
- 3. 如何C++代表負值
- 4. 如何在php中插入ajax的表單值...任何示例..?
- 5. 如何在編程中表示sqrt(-1)?
- 6. 如何在字符串中查找正值或負值?
- 7. 如何在python中生成負值隨機值
- 8. 如果數字是正數或負數(包括0),如何返回1或-1?
- 9. 如何在列表框中顯示XML值或如何在標籤上顯示。
- 10. 在控制檯中將負值稱爲負值,負值如何轉爲正值?
- 11. 如何根據openpyxl中的值(負值或正值)更改圖表顏色?
- 12. 如何將asn.1 erlang表示法轉換爲asn.1值表示法
- 13. 如何在Python中以列表或數組的形式讀取負數?
- 14. 如何識別值從正值變爲負值或負值的ID?
- 15. 如何從python的列表中讀取1個值?
- 16. 如何在python中表示二叉樹?
- 17. 如何在Python中表示新行?
- 18. 如何在UML中表示Python字典?
- 19. 如何在Python中表示Unicode對象?
- 20. 如何在MySQL中不顯示負數?
- 21. Python rowcount返回負1
- 22. 如何在python中將數字值表示爲字符串?
- 23. 如何在python字符串中表示十六進制值?
- 24. 如何在C3.js中的x軸下方顯示負值
- 25. 如何在Rails中顯示任務列表中的任務?
- 26. 如何在Python中的任何位置存儲和使用值?
- 27. Java - 散列表返回任何值或任何鍵?
- 28. 在ASP.net圖表上顯示負值
- 29. 如何在Python中反轉字符串列表而不反轉()或[:: - 1]
- 30. Python如何接收表單POST值,不使用任何框架
Python的哪個實現?在哪個硬件上? –
Python語言沒有定義它們的存儲方式,它依賴於實現。 – cdarke