[英]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.