我计算出可以存储在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