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