当前位置: 首页 > 面试题库 >

Math.abs为Integer.Min_VALUE返回错误的值

阎德辉
2023-03-14
问题内容

这段代码:

System.out.println(Math.abs(Integer.MIN_VALUE));

退货 -2147483648

它不应该将绝对值返回2147483648吗?


问题答案:

Integer.MIN_VALUE-2147483648,但32位整数可以包含的最大值是+2147483647。尝试以+214748364832位int表示将有效地“翻转”到-2147483648。这是因为,使用符号的整数时,两个补的二进制表示+2147483648-2147483648是相同的。但是,这不是问题,因为+2147483648超出了范围。

有关此问题的更多信息,您可能需要查看Two的补语中的Wikipedia文章。



 类似资料:
  • 问题内容: 在Java中,当我说。我得到与答案相同的值,即包含。我已经在C ++中验证了同样的内容。 为什么会这样呢? 问题答案: 阅读Joshua Bloch撰写的Effective Java中的内容。 我找到了这个问题的答案,这里是解释:计算机使用二进制算术工作,java或任何语言的函数的逻辑如下: 注意:如何找到2的补码 对于给定的数字,我们首先找到它的补数,然后再加1。例如,假设我们的数字

  • 基类控制器里有error方法,用于api的错误消息返回输出 /** * 操作错误跳转的快捷方法 * @access protected * @param mixed $msg 提示信息,若要指定错误码,可以传数组,格式为['code'=>您的错误码,'msg'=>'您的错误消息'] * @param mixed $data 返回的数据 * @par

  • 问题内容: 目前正被此错误推高。 我正在使用mongodb的mongojs包装器运行node.js应用程序。我在默认端口上启动mongod,然后运行 但是err和user都为“ null”。据我所知,err应该填充某种数据,即使找不到任何东西。 如何使回调函数正常工作?请原谅新手问题。 问题答案: 当查询找不到至少一个匹配的文档时,则将回调的第二个参数(在这种情况下)设置为。这不是错误,也是。因此

  • 我有一个日历视图,这是我的代码 当我点击“周一”时,=5和=Friday。当我点击周三时,=7和=Sunday。 我的日历视图中的一周的第一天是2,所以星期一。Toast向我展示了良好的价值。 有什么问题吗?

  • 我正在制作一个程序,将包含有关UML图的信息的.xml文件转换为实际的UML图。要绘制箭头,我需要获得我正在使用的VBox的高度(它们是锚窗格的子级)。我做了以下事情: 但是getHeight()值返回了错误的值。应该在40左右,但我得了32。 我怎样才能解决这个问题?

  • 当我尝试在运行时获取特定android风格的gcm_defaultSenderId时,它没有提供正确的值。 例如:我得到了味道tst,google-services.json看起来像这样。 json文件放在tst/google-services.json中。当我尝试使用R.string访问gcm_defaultSenderId时。gcm_defaultSenderId在运行时,返回值为:98765