估算数字的int值

时间:2018-06-26 10:00:21

标签: int

  

456789 * 456789的 int 值是多少? (常规的32位表示形式)

     

编辑-提出一个问题:值的4个字节代表什么?

1) -1,797,206,983

2)206,656,190,521

3)2,497,760,313

4)350,276,665

5)没有值:代码以错误消息终止。


我知道答案是1。 我想知道没有计算器或任何其他实用程序(例如在测试中)怎么能回答这个问题

2 个答案:

答案 0 :(得分:1)

阅读问题时我的方法:

  • 答案将大于400000 * 400000,即16和10个零(我可以在脑海中进行此计算),因此可以排除答案3和4。
  • 我知道(仅仅因为我只知道两个的2的乘方幂)32位值可以容纳大约42亿个值,因此答案2也可以被排除在外,因为该值太大而无法容纳32位

所以我会回答1)(不知道它是否正确)。

答案 1 :(得分:0)

这取决于特定语言如何处理数据类型操作(例如

)中的溢出
  • Java reference), C C ++ 返回最小值并从那里继续,返回{{ 1}};
  • C#返回编译错误“操作在检查模式下在编译时溢出”;
  • PHP JavaScript (下面的示例)返回-1797206983

208656190521