当前位置:  开发笔记 > 编程语言 > 正文

为什么会出现整数溢出?

如何解决《为什么会出现整数溢出?》经验,为你挑选了1个好方法。

我已经包装了一个dll方法,它在Web服务中有一个整数作为out参数.在测试中,我发现当我期待-1时,我得到的是65,535.我意识到dll使用的是16位整数,我在代码中引用外部dll时指定了标准的.NET 32位整数.通过指定一个16位整数很快就可以解决这个问题.

我的问题是为什么会发生这种情况?如果我试图在16位整数中拟合一个32位整数,我可以理解发生溢出但是我不太确定为什么这会发生反过来.显然,我对类型之间的类型铸造的理解有点缺乏,因此任何指导都将受到高度赞赏.



1> Paul Tomblin..:

16位整数"-1"设置全部16位.如果设置32位整数的低16位,则值为65,535.有关负内部的内部表示的解释,请查看本文.

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有