C语言中int越界变正还是变负,最小越界变正,最大越界变负为什么?最小值:当int型的数据到了最小值时,然后再减1(即越界时),它会变成正数,如果此时再将此数值加1,就可以知道这最小值是多
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/19 13:40:07
![C语言中int越界变正还是变负,最小越界变正,最大越界变负为什么?最小值:当int型的数据到了最小值时,然后再减1(即越界时),它会变成正数,如果此时再将此数值加1,就可以知道这最小值是多](/uploads/image/z/14283505-1-5.jpg?t=C%E8%AF%AD%E8%A8%80%E4%B8%ADint%E8%B6%8A%E7%95%8C%E5%8F%98%E6%AD%A3%E8%BF%98%E6%98%AF%E5%8F%98%E8%B4%9F%2C%E6%9C%80%E5%B0%8F%E8%B6%8A%E7%95%8C%E5%8F%98%E6%AD%A3%2C%E6%9C%80%E5%A4%A7%E8%B6%8A%E7%95%8C%E5%8F%98%E8%B4%9F%E4%B8%BA%E4%BB%80%E4%B9%88%3F%E6%9C%80%E5%B0%8F%E5%80%BC%EF%BC%9A%E5%BD%93int%E5%9E%8B%E7%9A%84%E6%95%B0%E6%8D%AE%E5%88%B0%E4%BA%86%E6%9C%80%E5%B0%8F%E5%80%BC%E6%97%B6%2C%E7%84%B6%E5%90%8E%E5%86%8D%E5%87%8F1%EF%BC%88%E5%8D%B3%E8%B6%8A%E7%95%8C%E6%97%B6%EF%BC%89%2C%E5%AE%83%E4%BC%9A%E5%8F%98%E6%88%90%E6%AD%A3%E6%95%B0%2C%E5%A6%82%E6%9E%9C%E6%AD%A4%E6%97%B6%E5%86%8D%E5%B0%86%E6%AD%A4%E6%95%B0%E5%80%BC%E5%8A%A01%2C%E5%B0%B1%E5%8F%AF%E4%BB%A5%E7%9F%A5%E9%81%93%E8%BF%99%E6%9C%80%E5%B0%8F%E5%80%BC%E6%98%AF%E5%A4%9A)
xN@ZM @Vk-(F@.5HevˉWp5@cQ{~oM7n<4WiyFjB!}IguC!=`Usv=˪&+}(A)IIT(< gN <Qj!n0硩8p֔ P2K۾iO2ZgĺZ^wwn7sd ͨ[]Vg)^}۰^S迟fרU@DFiEk'K8VEt
+&G۶̄hD։PY$H%Q>WGk,r,!v[DPފ|,bۘc4R9됇Z!]or(:Om'L/
C语言中int越界变正还是变负,最小越界变正,最大越界变负为什么?最小值:当int型的数据到了最小值时,然后再减1(即越界时),它会变成正数,如果此时再将此数值加1,就可以知道这最小值是多
C语言中int越界变正还是变负,最小越界变正,最大越界变负为什么?
最小值:当int型的数据到了最小值时,然后再减1(即越界时),它会变成正数,
如果此时再将此数值加1,就可以知道这最小值是多少了.
最大值:同理,当int型的数据到了最大值时,然后再加1(即越界时),它会变成负数,
如果此时再将此数值减1,就可以知道这最大值是多少了.
C语言中int越界变正还是变负,最小越界变正,最大越界变负为什么?最小值:当int型的数据到了最小值时,然后再减1(即越界时),它会变成正数,如果此时再将此数值加1,就可以知道这最小值是多
以16位int为例说明.
首先你要明白,在内存中存放的数都是补码.
最小的数是-32768,补码是1000,0000,0000,0000.-1的补码是1111,1111,1111,1111
-32768-1=[-32768]+[-1]=1000,0000,0000,0000+1111,1111,1111,1111=0111,1111,1111,1111
=32767
最大值是32767,补码是0111,1111,1111,1111.1的补码是0000,0000,0000,0001
32767+1=0111,1111,1111,1111+0000,0000,0000,0001=1000,0000,0000,0000
=-32768