簡體   English   中英

哪個一位整數的有效位更高?

[英]Which one-bit integer has more significant bit?

我有兩個不相等的整數,只包含一個非零位。 如何測試哪個整數的有效位更高?

例:

test(0b1000_0000, 0b0100_0000); // Should return true
test(0b0010_0000_0000, 0b0100_0000_0000); // Should return false

什么是最有效的test實施?

提示:“干凈”的方法是使用Integer.compareUnsignedInteger.numberOfLeadingZeros

(注意:“ unsigned”方法僅在Java 8和更高版本中可用...)


什么是最有效的測試實施?

問題的效率部分的答案將特定於平台。 如果您真的很在意,請對人們提供的各種替代方案進行基准測試。

我認為這是最有效的實現。 這也適用於負整數:

static boolean test(int int1, int int2) {
    return ((int2 - 1) & int1) == 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM