我計算出可以存儲在int數據類型中的可能數字的二進制補碼範圍是+32767到-32768,比我在CodeBlocks上進行的並給出了一個int值大於32767的 , !
我知道,如果你給一個數組比更多的值聲明它將需要更多
位比它應該從而摧毀另一個變量。
我的問題是當我給一個數據類型的值超出其
二進制補碼範圍時,會發生同樣的事情嗎?如果不是,會發生什麼......二進制補碼範圍在c
-1
A
回答
0
最小值大小爲int
是16位,它可以容納-32,768到+32,767。它的實際大小因操作系統而異,從編譯器到編譯器。 ISO C標準要求int
s能夠保持至少-32,767至+32,767,但不限於這些值。
它允許更大,並且適用於任何現代的32位或64位操作系統。 20年前的16位DOS中,你會看到16位的int
,但在任何現代操作系統中,它通常都是32位。
如果溢出signed int
行爲是未定義的。理論上,編譯器可以做任何事情,因爲符合C程序不應該觸發溢出。在實踐中,價值通常會從正面到負面,反之亦然。
溢出unsigned int
s是明確的。值保證包裝。如果unsigned int
是16位然後65535U + 1U == 0U
。如果它大於16位,那麼65535U + 1U == 65536U
(不溢出)。
+0
這是什麼意思*最小尺寸*? – RedBelly
相關問題
- 1. 二進制補碼
- 2. 16位二進制補碼
- 3. 二進制補碼算術
- 4. 二進制補碼轉換
- 5. 二進制補碼減法
- 6. std_logic_vector的二進制補碼
- 7. 在二進制中設置二進制補碼
- 8. 字節爲int與二進制補碼
- 9. 二進制補碼0到1,1,0到
- 10. ASM問題,二進制補碼
- 11. 長整數的二進制補碼
- 12. 二進制補碼的Tmax和Tmin
- 13. libtommath庫中的二進制補碼
- 14. 如何將補碼從二進制補碼轉換爲
- 15. 二進制搜索樹 - 搜索範圍
- 16. 二進制搜索樹打印範圍
- 17. 將十六進制轉換爲二進制和16位二進制補碼
- 18. 二進制補上了雙
- 19. 有符號整數到二進制補碼十六進制
- 20. 獲得負數的二進制補碼的十六進制
- 21. 表示二進制補碼的十六進制值
- 22. Python中十六進制數的二進制補碼
- 23. 將十進制轉換爲二進制補碼,溢出
- 24. 十進制範圍
- 25. One的二進制補碼8位有符號的大小,以二進制
- 26. 如何以編程方式獲得二進制數的二進制補碼
- 27. 如何在二進制補碼中檢測到溢出?
- 28. 默認情況下,C++是否將二進制數字讀爲二進制補碼?
- 29. 在陣列二進制搜索包含範圍
- 30. 生成隨機數字在特定的二進制範圍
沒有任何反應。很可能你的數據類型「int」實際上是32位大小。嘗試打印'sizeof(int)'並查看。當你聲明一個int時,你佔用*四個*字節。如果您正在分配相信整數大小爲兩個字節的內存結構,則可能需要小心。 – LSerni