[英]java Arrays.binarySearch gives wrong answer, but bitwise complement gives the right answer
GeeksForGeeks.com 在 Java 中有一系列有趣和酷炫的技巧,其中一个让我很困惑。 它给出了正确的答案,我只是不知道为什么。
import java.util.Arrays;
public class GFG {
public static void main(String[] args)
{
int[] arr = new int[] { 1, 3, 4, 5, 6 };
// 2 has to be inserted
int pos = Arrays.binarySearch(arr, 2);
System.out.print("Element has to be inserted at: "
+ ~pos);
}
}
所以它会正确地说位置是1,因为pos = -2,然后在取位补码后,~pos = 1,这是正确的位置。 但我想知道,为什么它一开始没有返回 1 ? 更神秘的是,为什么取按位补码后是正确的? 这是 GFG 文章的原始链接: https://www.geeksforgeeks.org/interesting-and-cool-tricks-in-java/
非常感谢 Java 大师的任何建议!
汉克
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.