gpt4 book ai didi

java - 找到一个非零整数 x 其中 x == -x?

转载 作者:IT老高 更新时间:2023-10-28 20:27:15 24 4
gpt4 key购买 nike

在我大学的算法和数据结构类(class)中,我收到了这个问题:

Which integer has the same bit-pattern as his negative value?

Means: x == -x

我知道 0 有效,但我怀疑讲师正在寻找其他数字 x。 x是什么?你会怎么找到它?

最佳答案

Integer.MIN_VALUE 和 Long.MIN_VALUE 没有等效的正值,当你取它们的负值时,你会得到相同的值。

负数与翻转所有位并加一相同。即

-x = ~x + 1

所以 -0x80000000 = 0x7fffffff + 1 = 0x8000000

注意:Math.abs(Integer.MIN_VALUE) == Integer.MIN_VALUE 是负数。此方法的 javadoc 中对此进行了概述。

技术上有很多答案和类型

byte x = 0;
short x = 0;
char x = 0;
int x = 0;
int x = Integer.MIN_VALUE;
float x = 0.0f;
float x = -0.0f;
long x = 0;
long x = Long.MIN_VALUE;
double x = 0.0;
double x = -0.0;
Byte x = 0;
Short x = 0;
Character x = 0;
Integer x = 0;
Integer x = Integer.MIN_VALUE;
Float x = 0.0f;
Float x = -0.0f;
Long x = 0L;
Long x = Long.MIN_VALUE;
Double x = 0.0;
Double x = -0.0;

类似的 Java Puzzler 是;以下表达式何时为 true.

x != x + 0

编辑:浮点同时具有 +0.0-0.0。您可能会认为 -0.0 是与 0.0 不同的值,尽管 -0.0 == -(-0.0)

注意:Double.compare(0.0, -0.0) > 0注意:

关于java - 找到一个非零整数 x 其中 x == -x?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19576430/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com