估计一个数的int值

估计一个数的int值,int,Int,456789*456789的int值是多少?(常规32位表示) 编辑-尖锐化问题:值的4字节表示形式是什么 1) -1797206983 2) 206656190521 3) 2497760313 4) 350276665 5) 无值:代码以错误消息终止 我知道答案是1。 我想知道没有计算器或任何其他实用程序(如在测试中)如何回答这个问题。这取决于特定语言如何管理数据类型操作中的溢出,例如 Java(),C和C++返回最小值并从那里继续,返回-1797206983 C#返回编译错误“操作在检

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

编辑-尖锐化问题:值的4字节表示形式是什么

1) -1797206983

2) 206656190521

3) 2497760313

4) 350276665

5) 无值:代码以错误消息终止


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

这取决于特定语言如何管理数据类型操作中的溢出,例如

  • Java(),CC++返回最小值并从那里继续,返回
    -1797206983
  • C#返回编译错误“操作在检查模式下的编译时溢出”
  • PHPJavaScript(下面的示例)返回
    208656190521

console.log(456789*456789)阅读您的问题时我的方法:

  • 答案将大于400000*400000,即16加10个零(我可以在头脑中进行计算),因此答案3和4可以排除在外
  • 我知道(因为我只知道两个常用的幂),32位的值可以容纳42亿个值,所以答案2也可以排除,因为值太大,无法容纳32位的值

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

这取决于语言,
int
根据语言的不同有不同的含义。确切的行为取决于,如果你在C中尝试该表达式,它实际上不会编译,因为它溢出int,而且因为你没有明确说明你想要长(64位)它甚至不会为您编译表达式。我想这将是最准确的答案,但如果我们假设它是java或类似于当我在编程模式下使用windows 10计算器时发生的情况,您将如何在纸上回答这个问题?您有4个字节来表示结果,您如何知道它的选项1?这也是我的方法,尽管我想知道是否有其他方法可以喜欢。。知道会是负面的还是类似的吗