字符或浮点溢出
不确定如何判断是否可能发生溢出。我得到了这个示例代码:
char x;
float f, g;
// some values get assigned to x and f here...
g = f + x;
有人可以解释一下吗?
Unsure how to tell if an overflow is possible. I am given this sample code:
char x;
float f, g;
// some values get assigned to x and f here...
g = f + x;
Can someone please explain?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
float
在其最高限制(二进制指数 127)下,没有足够的精度(23 位)来显示最大可能的char
(127, 7位),因此不可能溢出,因为加法没有效果(需要 127-7=120 的精度)。A
float
, at its highest limits (binary exponent of 127), does not have sufficient precision (23 bits) to show a difference of the largest possiblechar
(127, 7 bits), and so overflow is not possible since addition will have no effect (a precision of 127-7=120 would be required).