Java Integer.estimOneBit()方法
java.lang的Integer.estimOneBit()方法返回一个整数值,该整数值最多只有一个位,位于给定int值的最高阶(即最左边)的一个位的位置。如果指定的值在其二进制补码表示中没有一比特,那么它将返回0,如果它等于0,则简单地返回。
语法
public static int highestOneBit( _int a_ )
参数: 该方法需要一个整数类型的参数 a ,指的是要返回的最高阶位的值或要对其进行的操作。
返回: 该方法可以返回两种类型的值。
- 返回一个带有单个1位的整数值,位于指定值中最高阶1位的位置。
- 如果指定的值等于零,则返回零。
例子
Input: 19
Output: Highest one bit of the given integer is = 16
Input: -9
Output: Highest one bit of the given integer is = -2147483648
**Explanation:**
Consider any integer a = 19
Binary Representation = 0001 0011
Highest bit(at 4) i.e.0001 0000
so result = 2^4=16
下面的程序说明了Java.lang.Integer.highestOneBit()方法。
程序1: 对于一个正数。
// Java program to illustrate the
// Java.lang.Integer.highestOneBit() Method
import java.lang.*;
public class HighestOneBit {
public static void main(String[] args)
{
int a = 29;
System.out.println("Number is = " + a);
// returns an int value with at most a single one-bit, in the position
// of the highest-order or the leftmost one-bit in the specified int value
System.out.print("Highest one bit of the given integer is = ");
System.out.println(Integer.highestOneBit(a));
a = 44;
System.out.println("Number is = " + a);
System.out.print("Highest one bit of the given integer is = ");
System.out.println(Integer.highestOneBit(a));
}
}
输出
Number is = 29
Highest one bit of the given integer is = 16
Number is = 44
Highest one bit of the given integer is = 32
程序2: 对于一个负数。
// Java program to illustrate the
// Java.lang.Integer.highestOneBit() Method
import java.lang.*;
public class HighestOneBit {
public static void main(String[] args)
{
int a = -9;
System.out.println("Number is = " + a);
// returns an int value with at most a single one-bit, in the position
// of the highest-order or the leftmost one-bit in the specified int value
System.out.print("Highest one bit of the given integer is = ");
System.out.println(Integer.highestOneBit(a));
}
}
输出
Number is = -9
Highest one bit of the given integer is = -2147483648
程序3: 对于一个十进制数值。
注意: 由于类型不兼容,当十进制数值作为一个参数被传递时,它将返回一个错误信息。
// Java program to illustrate the
// Java.lang.Integer.highestOneBit() Method
import java.lang.*;
public class HighestOneBit {
public static void main(String[] args)
{
int a = 84.22;
System.out.println("Number is = " + a);
// decimal value 84.22 is passed here
System.out.print("Highest one bit of the given integer is = ");
System.out.println(Integer.highestOneBit(a));
}
}
输出
prog.java:9: error: incompatible types: possible lossy conversion from double to int
int a = 84.22;
^
1 error
程序4: 对于一个字符串。
注意: 当一个字符串作为参数被传递时,由于类型不兼容,它将返回一个错误信息。
// Java program to illustrate the
// Java.lang.Integer.highestOneBit() Method
import java.lang.*;
public class HighestOneBit {
public static void main(String[] args)
{
int a = "34";
System.out.println("Number is = " + a);
// decimal value 84.22 is passed here
System.out.print("Highest one bit of the given integer is = ");
System.out.println(Integer.highestOneBit(a));
}
}
输出
prog.java:9: error: incompatible types: String cannot be converted to int
int a = "34";
^
1 error