我計算出可以存儲在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. 二進制補碼stm32 c
- 2. 二進制補碼
- 3. 用二進制補碼查找二進制數,C
- 4. 7位二進制補碼
- 5. 二進制補碼算術
- 6. std_logic_vector的二進制補碼
- 7. 二進制補碼錶示
- 8. 二進制補碼查詢
- 9. 16位二進制補碼
- 10. 二進制補碼轉換
- 11. 二進制補碼減法
- 12. 十進制數的二進制補碼
- 13. 二進制搜索範圍
- 14. 在二進制中設置二進制補碼
- 15. 在Python中使用二進制補碼
- 16. 基數的二進制補碼二進制數
- 17. 二進制中最小的二進制補碼
- 18. 帶分數的二進制數的二進制補碼
- 19. 什麼是二進制補碼整數?
- 20. uint8_t到二進制補碼功能
- 21. 長整數的二進制補碼
- 22. 二進制補碼的Tmax和Tmin
- 23. Verilog中的二進制補碼
- 24. 字節爲int與二進制補碼
- 25. ASM問題,二進制補碼
- 26. libtommath庫中的二進制補碼
- 27. 二進制補碼0到1,1,0到
- 28. 如何將補碼從二進制補碼轉換爲
- 29. Unix中的二進制替換範圍
- 30. 二進制搜索樹打印範圍
沒有任何反應。很可能你的數據類型「int」實際上是32位大小。嘗試打印'sizeof(int)'並查看。當你聲明一個int時,你佔用*四個*字節。如果您正在分配相信整數大小爲兩個字節的內存結構,則可能需要小心。 – LSerni