[英]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.compareUnsigned
或Integer.numberOfLeadingZeros
。
(注意:“ unsigned”方法僅在Java 8和更高版本中可用...)
什么是最有效的測試實施?
問題的效率部分的答案將特定於平台。 如果您真的很在意,請對人們提供的各種替代方案進行基准測試。
我認為這是最有效的實現。 這也適用於負整數:
static boolean test(int int1, int int2) {
return ((int2 - 1) & int1) == 0;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.