阅读(4785) (0)

鸿蒙OS Integer

2022-04-28 15:51:29 更新

Integer

java.lang.Object

|---java.lang.Number

|---|---java.lang.Integer

public final class Integer
extends Number
implements Comparable<Integer>

Integer 类将原始类型 int 的值包装在一个对象中。 Integer 类型的对象包含一个类型为 int 的字段。

此外,该类提供了几种将 int 转换为 String 和 String 转换为 int 的方法,以及在处理 int 时有用的其他常量和方法。

实现说明:“bit twiddling”方法(例如highestOneBit 和numberOfTrailingZeros)的实现基于Henry S. Warren, Jr. 的Hacker's Delight(Addison Wesley,2002)中的材料。

字段摘要

修饰符和类型 字段 描述
static int BYTES 用于以二进制补码形式表示 int 值的字节数。
static int MAX_VALUE 一个保持 int 可以具有的最大值的常数,231-1。
static int MIN_VALUE 一个保持 int 可以具有的最小值的常数,-231。
static int SIZE 用于以二进制补码形式表示 int 值的位数。
static ClassInteger TYPE 表示基本类型 int 的 Class 实例。

构造函数摘要

构造函数 描述
Integer(int value) 构造一个新分配的表示指定 int 值的 Integer 对象。
Integer(String s) 构造一个新分配的 Integer 对象,该对象表示由 String 参数指示的 int 值。

方法总结

修饰符和类型 方法 描述
static int bitCount(int i) 返回指定 int 值的二进制补码表示中的一位数。
byte byteValue() 在缩小原语转换后,将此 Integer 的值作为字节返回。
static int compare(int x, int y) 以数值方式比较两个 int 值。
int compareTo(Integer anotherInteger) 以数值方式比较两个 Integer 对象。
static int compareUnsigned(int x, int y) 比较两个 int 值,以数值方式将这些值视为无符号。
static Integer decode(String nm) 将字符串解码为整数。
static int divideUnsigned(int dividend, int divisor) 返回第一个参数除以第二个参数的无符号商,其中每个参数和结果都被解释为无符号值。
double doubleValue() 在扩大原始转换后将此 Integer 的值作为双精度值返回。
boolean equals(Object obj) 将此对象与指定对象进行比较。
float floatValue() 在扩大原始转换后将此整数的值作为浮点数返回。
static Integer getInteger(String nm) 确定具有指定名称的系统属性的整数值。
static Integer getInteger(String nm, int val) 确定具有指定名称的系统属性的整数值。
static Integer getInteger(String nm, Integer val) 返回具有指定名称的系统属性的整数值。
int hashCode() 返回此整数的哈希码。
static int hashCode(int value) 返回 int 值的哈希码; 与 Integer.hashCode() 兼容。
static int highestOneBit(int i) 返回一个 int 值,最多有一个单个位,位于指定 int 值中最高(“最左边”)一位的位置。
int intValue() 将此 Integer 的值作为 int 返回。
long longValue() 在扩展原始转换后将此 Integer 的值作为 long 返回。
static int lowestOneBit(int i) 返回一个 int 值,最多只有一个一位,位于指定 int 值中最低位(“最右边”)一位的位置。
static int max(int a, int b) 返回两个 int 值中的较大者,就像调用 Math#max(int, int) 一样。
static int min(int a, int b) 返回两个 int 值中较小的一个,就像调用 Math#min(int, int) 一样。
static int numberOfLeadingZeros(int i) 返回指定 int 值的二进制补码表示中最高位(“最左边”)一位之前的零位数。
static int numberOfTrailingZeros(int i) 返回指定 int 值的二进制补码表示中最低位(“最右边”)一位之后的零位数。
static int parseInt(String s) 将字符串参数解析为有符号十进制整数。
static int parseInt(String s, int radix) 将字符串参数解析为第二个参数指定的基数中的有符号整数。
static int parseUnsignedInt(String s) 将字符串参数解析为无符号十进制整数。
static int parseUnsignedInt(String s, int radix) 将字符串参数解析为第二个参数指定的基数中的无符号整数。
static int remainderUnsigned(int dividend, int divisor) 返回第一个参数除以第二个参数得到的无符号余数,其中每个参数和结果都被解释为无符号值。
static int reverse(int i) 返回通过反转指定 int 值的二进制补码表示中的位顺序获得的值。
static int reverseBytes(int i) 返回通过反转指定 int 值的二进制补码表示中的字节顺序获得的值。
static int rotateLeft(int i, int distance) 返回通过将指定 int 值的二进制补码表示形式向左旋转指定位数而获得的值。
static int rotateRight(int i, int distance) 返回通过将指定 int 值的二进制补码表示向右旋转指定位数获得的值。
short shortValue() 在缩小原始转换后将此 Integer 的值作为 short 返回。
static int signum(int i) 返回指定 int 值的符号函数。
static int sum(int a, int b) 根据 + 运算符将两个整数相加。
static String toBinaryString(int i) 将整数参数的字符串表示形式返回为以 2 为底的无符号整数。
static String toHexString(int i) 将整数参数的字符串表示形式返回为基数为 16 的无符号整数。
static String toOctalString(int i) 将整数参数的字符串表示形式返回为以 8 为底的无符号整数。
String toString() 返回表示此整数值的字符串对象。
static String toString(int i) 返回表示指定整数的 String 对象。
static String toString(int i, int radix) 以第二个参数指定的基数返回第一个参数的字符串表示形式。
static long toUnsignedLong(int x) 通过无符号转换将参数转换为 long。
static String toUnsignedString(int i) 将参数的字符串表示形式返回为无符号十进制值。
static String toUnsignedString(int i, int radix) 将第一个参数的字符串表示形式返回为第二个参数指定的基数中的无符号整数值。
static Integer valueOf(int i) 返回一个表示指定 int 值的 Integer 实例。
static Integer valueOf(String s) 返回一个 Integer 对象,该对象包含指定 String 的值。
static Integer valueOf(String s, int radix) 当使用第二个参数给出的基数进行解析时,返回一个 Integer 对象,该对象包含从指定 String 中提取的值。
从类 java.lang.Object 继承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait

字段详细信息

BYTES

public static final int BYTES

用于以二进制补码形式表示 int 值的字节数。

MAX_VALUE

public static final int MAX_VALUE

一个保持 int 可以具有的最大值的常数,231-1。

MIN_VALUE

public static final int MIN_VALUE

一个保持 int 可以具有的最小值的常数,-231。

SIZE

public static final int SIZE

用于以二进制补码形式表示 int 值的位数。

TYPE

public static final ClassInteger TYPE

表示基本类型 int 的 Class 实例。

构造函数详细信息

Integer

public Integer(int value)

构造一个新分配的表示指定 int 值的 Integer 对象。

参数:

参数名称 参数描述
value 要由 Integer 对象表示的值。

Integer

public Integer(String s) throws NumberFormatException

构造一个新分配的 Integer 对象,该对象表示由 String 参数指示的 int 值。 字符串转换为 int 值的方式与 parseInt 方法用于基数 10 的方式完全相同。

参数:

参数名称 参数描述
s 要转换为整数的字符串。

Throws:

Throw名称 Throw描述
NumberFormatException 如果字符串不包含可解析的整数。

方法详情

toString

public static String toString(int i, int radix)

以第二个参数指定的基数返回第一个参数的字符串表示形式。

如果基数小于 Character.MIN_RADIX 或大于 Character.MAX_RADIX,则使用基数 10。

如果第一个参数为负,则结果的第一个元素是 ASCII 减号字符“-”(“\u002D”)。如果第一个参数不是负数,则结果中不会出现符号字符。

结果的其余字符表示第一个参数的大小。如果幅度为零,则由单个零字符'0'('\u0030')表示;否则,幅度表示的第一个字符将不是零字符。以下 ASCII 字符用作数字:

0123456789abcdefghijklmnopqrstuvwxyz

它们是 '\u0030' 到 '\u0039' 和 '\u0061' 到 '\u007A'。如果 radix 为 N,则这些字符中的前 N 个字符按所示顺序用作 radix-N 位。因此,十六进制(基数 16)的数字是 0123456789abcdef。如果需要大写字母,可以对结果调用 String.toUpperCase() 方法:

Integer.toString(n, 16).toUpperCase()

参数:

参数名称 参数描述
i 要转换为字符串的整数。
radix 在字符串表示中使用的基数。

返回:

以指定基数表示的参数的字符串表示形式。

toUnsignedString

public static String toUnsignedString(int i, int radix)

将第一个参数的字符串表示形式返回为第二个参数指定的基数中的无符号整数值。

如果基数小于 Character.MIN_RADIX 或大于 Character.MAX_RADIX,则使用基数 10。

请注意,由于第一个参数被视为无符号值,因此不会打印前导符号字符。

如果幅度为零,则由单个零字符'0'('\u0030')表示; 否则,幅度表示的第一个字符将不是零字符。

基数和用作数字的字符的行为与 toString 相同。

参数:

参数名称 参数描述
i 要转换为无符号字符串的整数。
radix 在字符串表示中使用的基数。

返回:

指定基数中参数的无符号字符串表示形式。

toHexString

public static String toHexString(int i)

将整数参数的字符串表示形式返回为基数为 16 的无符号整数。

如果参数为负数,则无符号整数值是参数加上 232; 否则,它等于参数。 此值将转换为十六进制(以 16 为基数)的 ASCII 数字字符串,没有额外的前导 0。

可以通过调用 Integer#parseUnsignedInt(String, int) 从返回的字符串 s 中恢复参数的值。

如果无符号幅度为零,则由单个零字符'0'('\u0030')表示; 否则,无符号幅度表示的第一个字符将不是零字符。 以下字符用作十六进制数字:

0123456789abcdef

这些是字符 '\u0030' 到 '\u0039' 和 '\u0061' 到 '\u0066'。 如果需要大写字母,可以对结果调用 String.toUpperCase() 方法:

Integer.toHexString(n).toUpperCase()

参数:

参数名称 参数描述
i 要转换为字符串的整数。

返回:

由十六进制参数表示的无符号整数值的字符串表示形式(以 16 为基数)。

toOctalString

public static String toOctalString(int i)

将整数参数的字符串表示形式返回为以 8 为底的无符号整数。

如果参数为负数,则无符号整数值是参数加上 232; 否则,它等于参数。 此值被转换为八进制(以 8 为基数)的 ASCII 数字字符串,没有额外的前导 0。

可以通过调用 Integer#parseUnsignedInt(String, int) 从返回的字符串 s 中恢复参数的值。

如果无符号幅度为零,则由单个零字符'0'('\u0030')表示; 否则,无符号幅度表示的第一个字符将不是零字符。 以下字符用作八进制数字:

01234567

这些是字符 '\u0030' 到 '\u0037'。

参数:

参数名称 参数描述
i 要转换为字符串的整数。

返回:

由八进制(以 8 为基数)的参数表示的无符号整数值的字符串表示形式。

toBinaryString

public static String toBinaryString(int i)

将整数参数的字符串表示形式返回为以 2 为底的无符号整数。

如果参数为负数,则无符号整数值是参数加上 232; 否则它等于参数。 此值被转换为二进制(以 2 为基数)的 ASCII 数字字符串,没有额外的前导 0。

可以通过调用 Integer#parseUnsignedInt(String, int) 从返回的字符串 s 中恢复参数的值。

如果无符号幅度为零,则由单个零字符'0'('\u0030')表示; 否则,无符号幅度表示的第一个字符将不是零字符。 字符 '0' ('\u0030') 和 '1' ('\u0031') 用作二进制数字。

参数:

参数名称 参数描述
i 要转换为字符串的整数。

返回:

由二进制参数表示的无符号整数值的字符串表示形式(以 2 为基数)。

toString

public static String toString(int i)

返回表示指定整数的 String 对象。 参数被转换为带符号的十进制表示并作为字符串返回,就像参数和基数 10 作为 toString(int,int) 方法的参数一样。

参数:

参数名称 参数描述
i 要转换的整数。

返回:

以 10 为基数的参数的字符串表示形式。

toUnsignedString

public static String toUnsignedString(int i)

将参数的字符串表示形式返回为无符号十进制值。 该参数被转换为无符号十进制表示并以字符串的形式返回,就像参数和基数 10 作为 toUnsignedString(int,int) 方法的参数一样。

参数:

参数名称 参数描述
i 要转换为无符号字符串的整数。

返回:

参数的无符号字符串表示。

parseInt

public static int parseInt(String s, int radix) throws NumberFormatException

将字符串参数解析为第二个参数指定的基数中的有符号整数。 字符串中的字符必须都是指定基数的数字(由 Character.digit(char, int) 是否返回非负值决定),除了第一个字符可能是 ASCII 减号 '-' ('\u002D ') 表示负值或 ASCII 加号 '+' ('\u002B') 表示正值。 返回结果整数值。

如果发生以下任何一种情况,则会引发 NumberFormatException 类型的异常:

  • 第一个参数为空或长度为零的字符串。
  • 基数小于 Character.MIN_RADIX 或大于 Character.MAX_RADIX。
  • 字符串的任何字符都不是指定基数的数字,除非第一个字符可以是减号'-'('\u002D')或加号'+'('\u002B'),前提是字符串 比长度 1 长。
  • 字符串表示的值不是 int 类型的值。

例子:

 parseInt("0", 10) returns 0
 parseInt("473", 10) returns 473
 parseInt("+42", 10) returns 42
 parseInt("-0", 10) returns 0
 parseInt("-FF", 16) returns -255
 parseInt("1100110", 2) returns 102
 parseInt("2147483647", 10) returns 2147483647
 parseInt("-2147483648", 10) returns -2147483648
 parseInt("2147483648", 10) throws a NumberFormatException
 parseInt("99", 8) throws a NumberFormatException
 parseInt("Kona", 10) throws a NumberFormatException
 parseInt("Kona", 27) returns 411787

参数:

参数名称 参数描述
s 包含要解析的整数表示的字符串
radix 解析 s 时要使用的基数。

返回:

由指定基数中的字符串参数表示的整数。

Throws:

Throw名称 Throw描述
NumberFormatException 如果 String 不包含可解析的 int。

parseInt

public static int parseInt(String s) throws NumberFormatException

将字符串参数解析为有符号十进制整数。 字符串中的字符必须都是十进制数字,除了第一个字符可以是ASCII减号'-'('\u002D')表示负值或ASCII加号'+'('\u002B') 表示正值。 返回结果整数值,就像参数和基数 10 作为参数提供给 parseInt(java.lang.String,int) 方法一样。

参数:

参数名称 参数描述
s 包含要解析的 int 表示形式的 String

返回:

由十进制参数表示的整数值。

Throws:

Throw名称 Throw描述
NumberFormatException 如果字符串不包含可解析的整数。

parseUnsignedInt

public static int parseUnsignedInt(String s, int radix) throws NumberFormatException

将字符串参数解析为第二个参数指定的基数中的无符号整数。无符号整数将通常与负数关联的值映射到大于 MAX_VALUE 的正数。字符串中的字符必须都是指定基数的数字(由 Character.digit(char, int) 是否返回非负值决定),除了第一个字符可能是 ASCII 加号 '+' ('\u002B ')。返回结果整数值。

如果发生以下任何一种情况,则会引发 NumberFormatException 类型的异常:

  • 第一个参数为空或长度为零的字符串。
  • 基数小于 Character.MIN_RADIX 或大于 Character.MAX_RADIX。
  • 字符串的任何字符都不是指定基数的数字,除非第一个字符可以是加号“+”(“\u002B”),前提是该字符串的长度大于 1。
  • 字符串表示的值大于最大的无符号整数,232-1。

参数:

参数名称 参数描述
s 包含要解析的无符号整数表示的字符串
radix 解析 s 时要使用的基数。

返回:

由指定基数中的字符串参数表示的整数。

Throws:

Throw名称 Throw描述
NumberFormatException 如果 String 不包含可解析的 int。

parseUnsignedInt

public static int parseUnsignedInt(String s) throws NumberFormatException

将字符串参数解析为无符号十进制整数。 字符串中的字符都必须是十进制数字,除了第一个字符可能是 ASCII 加号“+”(“\u002B”)。 返回结果整数值,就好像参数和基数 10 作为参数提供给 parseUnsignedInt(java.lang.String,int) 方法一样。

参数:

参数名称 参数描述
s 一个包含要解析的无符号整数表示的字符串

返回:

由十进制参数表示的无符号整数值。

Throws:

Throw名称 Throw描述
NumberFormatException 如果字符串不包含可解析的无符号整数。

valueOf

public static Integer valueOf(String s, int radix) throws NumberFormatException

当使用第二个参数给出的基数进行解析时,返回一个 Integer 对象,该对象包含从指定 String 中提取的值。 第一个参数被解释为表示由第二个参数指定的基数中的有符号整数,就像将参数提供给 parseInt(java.lang.String,int) 方法一样。 结果是一个表示字符串指定的整数值的 Integer 对象。

换句话说,此方法返回一个等于以下值的 Integer 对象:

new Integer(Integer.parseInt(s, radix))

参数:

参数名称 参数描述
s 要解析的字符串。
radix 用于解释 s 的基数

返回:

一个 Integer 对象,保存由指定基数中的字符串参数表示的值。

Throws:

Throw名称 Throw描述
NumberFormatException 如果 String 不包含可解析的 int。

valueOf

public static Integer valueOf(String s) throws NumberFormatException

返回一个 Integer 对象,该对象包含指定 String 的值。 该参数被解释为表示一个带符号的十进制整数,就像将该参数提供给 parseInt(java.lang.String) 方法一样。 结果是一个表示字符串指定的整数值的 Integer 对象。

换句话说,此方法返回一个等于以下值的 Integer 对象:

new Integer(Integer.parseInt(s))

参数:

参数名称 参数描述
s 要解析的字符串。

返回:

一个 Integer 对象,保存由字符串参数表示的值。

Throws:

Throw名称 Throw描述
NumberFormatException 如果字符串不能被解析为整数。

valueOf

public static Integer valueOf(int i)

返回一个表示指定 int 值的 Integer 实例。 如果不需要新的 Integer 实例,则通常应优先使用此方法而不是构造函数 Integer(int),因为此方法可能会通过缓存频繁请求的值来显着提高空间和时间性能。 此方法将始终缓存 -128 到 127(含)范围内的值,并且可能缓存此范围之外的其他值。

参数:

参数名称 参数描述
i 一个 int 值。

返回:

表示 i 的 Integer 实例。

byteValue

public byte byteValue()

在缩小原语转换后,将此 Integer 的值作为字节返回。

覆盖:

类 Number 中的 byteValue

返回:

此对象在转换为字节类型后表示的数值。

shortValue

public short shortValue()

在缩小原始转换后将此 Integer 的值作为 short 返回。

覆盖:

类 Number 中的 shortValue

返回:

此对象在转换为 short 类型后表示的数值。

intValue

public int intValue()

将此 Integer 的值作为 int 返回。

指定者:

类 Number 中的 intValue

返回:

此对象在转换为 int 类型后表示的数值。

longValue

public long longValue()

在扩展原始转换后将此 Integer 的值作为 long 返回。

指定者:

类 Number 中的 longValue

返回:

此对象在转换为 long 类型后表示的数值。

floatValue

public float floatValue()

在扩大原始转换后将此整数的值作为浮点数返回。

指定者:

类 Number 中的 floatValue

返回:

此对象在转换为 float 类型后表示的数值。

doubleValue

public double doubleValue()

在扩大原始转换后将此 Integer 的值作为双精度值返回。

指定者:

类 Number 中的 doubleValue

返回:

此对象在转换为 double 类型后表示的数值。

toString

public String toString()

返回表示此整数值的字符串对象。 该值被转换为带符号的十进制表示形式并以字符串形式返回,就像将整数值作为参数提供给 toString(int) 方法一样。

覆盖:

类 Object 中的 toString

返回:

以 10 为基数的此对象值的字符串表示形式。

hashCode

public int hashCode()

返回此整数的哈希码。

覆盖:

类 Object 中的 hashCode

返回:

此对象的哈希码值,等于此 Integer 对象表示的原始 int 值。

hashCode

public static int hashCode(int value)

返回 int 值的哈希码; 与 Integer.hashCode() 兼容。

参数:

参数名称 参数描述
value 哈希值

返回:

int 值的哈希码值。

equals

public boolean equals(Object obj)

将此对象与指定对象进行比较。 当且仅当参数不为 null 并且是包含与此对象相同的 int 值的 Integer 对象时,结果才为真。

覆盖:

类 Object 中的等于

参数:

参数名称 参数描述
obj 比较的对象。

返回:

如果对象相同,则为 true; 否则为假。

getInteger

public static Integer getInteger(String nm)

确定具有指定名称的系统属性的整数值。

第一个参数被视为系统属性的名称。 系统属性可通过 System.getProperty(java.lang.String) 方法访问。 然后使用 Integer#decode 支持的语法将此属性的字符串值解释为整数值,并返回表示该值的 Integer 对象。

如果没有具有指定名称的属性,如果指定的名称为空或 null,或者如果属性没有正确的数字格式,则返回 null。

换句话说,此方法返回一个等于以下值的 Integer 对象:

getInteger(nm, null)

参数:

参数名称 参数描述
nm 属性名称

返回:

属性的整数值。

Throws:

Throw名称 Throw描述
SecurityException 出于与 System#getProperty(String) 相同的原因

getInteger

public static Integer getInteger(String nm, int val)

确定具有指定名称的系统属性的整数值。

第一个参数被视为系统属性的名称。 系统属性可通过 System.getProperty(java.lang.String) 方法访问。 然后使用 Integer#decode 支持的语法将此属性的字符串值解释为整数值,并返回表示该值的 Integer 对象。

第二个参数是默认值。 如果没有指定名称的属性,如果属性没有正确的数字格式,或者指定的名称为空或 null,则返回表示第二个参数的值的 Integer 对象。

换句话说,此方法返回一个等于以下值的 Integer 对象:

getInteger(nm, new Integer(val))

但在实践中,它可以通过以下方式实施:

 Integer result = getInteger(nm, null);
 return (result == null) ? new Integer(val) : result;

以避免在不需要默认值时对 Integer 对象进行不必要的分配。

参数:

参数名称 参数描述
nm 属性名称
val 默认值

返回:

属性的整数值。

Throws:

Throw名称 Throw描述
SecurityException 出于与 System#getProperty(String) 相同的原因

getInteger

public static Integer getInteger(String nm, Integer val)

返回具有指定名称的系统属性的整数值。第一个参数被视为系统属性的名称。系统属性可通过 System.getProperty(java.lang.String) 方法访问。然后根据 Integer#decode 方法将此属性的字符串值解释为整数值,并返回表示该值的 Integer 对象;总之:

  • 如果属性值以两个 ASCII 字符 0x 或 ASCII 字符 # 开头,后面没有减号,则其余部分将被解析为十六进制整数,与方法 valueOf(java.lang.String,int ) 基数为 16。
  • 如果属性值以 ASCII 字符 0 后跟另一个字符开头,则它被解析为八进制整数,与基数为 8 的 valueOf(java.lang.String,int) 方法完全相同。
  • 否则,属性值将被解析为十进制整数,与基数为 10 的 valueOf(java.lang.String,int) 方法完全相同。

第二个参数是默认值。如果没有指定名称的属性,如果属性没有正确的数字格式,或者指定的名称为空或 null,则返回默认值。

参数:

参数名称 参数描述
nm 属性名称
val 默认值

返回:

属性的整数值。

Throws:

Throw名称 Throw描述
SecurityException 出于与 System#getProperty(String) 相同的原因

decode

public static Integer decode(String nm) throws NumberFormatException

将字符串解码为整数。 接受以下语法给出的十进制、十六进制和八进制数:

可解码字符串:

Signopt 十进制数字

Signopt 0x HexDigits

Signopt 0X HexDigits

Signopt #HexDigits

Signopt 0 八进制数字

符号:

+

DecimalNumeral、HexDigits 和 OctalDigits 的定义见《Java™ 语言规范》第 3.10.1 节,但数字之间不接受下划线。

跟随可选符号和/或基数说明符(“0x”、“0X”、“#”或前导零)的字符序列由 Integer.parseInt 方法解析,并使用指示的基数(10、16 或 8 )。 此字符序列必须表示正值,否则将引发 NumberFormatException。 如果指定字符串的第一个字符是减号,则结果为否定。 字符串中不允许有空格字符。

参数:

参数名称 参数描述
nm 要解码的字符串。

返回:

一个 Integer 对象,保存由 nm 表示的 int 值

Throws:

Throw名称 Throw描述
NumberFormatException 如果字符串不包含可解析的整数。

compareTo

public int compareTo(Integer anotherInteger)

以数值方式比较两个 Integer 对象。

指定者:

接口 ComparableInteger 中的 compareTo

参数:

参数名称 参数描述
anotherInteger 要比较的整数。

返回:

如果此 Integer 等于参数 Integer,则值为 0; 如果此 Integer 在数值上小于参数 Integer,则值小于 0; 如果此 Integer 在数值上大于参数 Integer(有符号比较),则值大于 0。

compare

public static int compare(int x, int y)

以数值方式比较两个 int 值。 返回的值与通过以下方式返回的值相同:

    Integer.valueOf(x).compareTo(Integer.valueOf(y)) 

参数:

参数名称 参数描述
x 第一个要比较的int
y 第二个要比较的int

返回:

如果 x == y,则值为 0; 如果 x < y,则值小于 0; 如果 x > y,则值大于 0

compareUnsigned

public static int compareUnsigned(int x, int y)

比较两个 int 值,以数值方式将这些值视为无符号。

参数:

参数名称 参数描述
x 第一个要比较的int
y 第二个要比较的int

返回:

如果 x == y,则值为 0; 如果 x < y 作为无符号值,则值小于 0; 如果 x > y 作为无符号值,则值大于 0

toUnsignedLong

public static long toUnsignedLong(int x)

通过无符号转换将参数转换为 long。 在到 long 的无符号转换中,long 的高 32 位为零,低 32 位等于整数参数的位。 因此,零和正 int 值映射到数值相等的 long 值,负 int 值映射到等于输入加 232 的 long 值。

参数:

参数名称 参数描述
x 要转换为无符号长整数的值

返回:

通过无符号转换转换为 long 的参数

divideUnsigned

public static int divideUnsigned(int dividend, int divisor)

返回第一个参数除以第二个参数的无符号商,其中每个参数和结果都被解释为无符号值。

请注意,在二进制补码算术中,如果两个操作数都被视为有符号或无符号,则加法、减法和乘法这三个其他基本算术运算按位相同。 因此不提供单独的 addUnsigned 等方法。

参数:

参数名称 参数描述
dividend 要分割的值
divisor 做除法的价值

返回:

第一个参数的无符号商除以第二个参数

remainderUnsigned

public static int remainderUnsigned(int dividend, int divisor)

返回第一个参数除以第二个参数得到的无符号余数,其中每个参数和结果都被解释为无符号值。

参数:

参数名称 参数描述
dividend 要分割的值
divisor 做除法的价值

返回:

第一个参数的无符号余数除以第二个参数

highestOneBit

public static int highestOneBit(int i)

返回一个 int 值,最多有一个单个位,位于指定 int 值中最高(“最左边”)一位的位置。 如果指定的值在其二进制补码表示中没有一位,即等于零,则返回零。

参数:

参数名称 参数描述
i 要计算其最高一位的值

返回:

具有单个一位的 int 值,位于指定值中最高位的位置,如果指定值本身等于 0,则为 0。

lowestOneBit

public static int lowestOneBit(int i)

返回一个 int 值,最多只有一个一位,位于指定 int 值中最低位(“最右边”)一位的位置。 如果指定的值在其二进制补码表示中没有一位,即等于零,则返回零。

参数:

参数名称 参数描述
i 要计算其最低一位的值

返回:

具有单个一位的 int 值,位于指定值中最低位的位置,如果指定值本身等于 0,则为 0。

numberOfLeadingZeros

public static int numberOfLeadingZeros(int i)

返回指定 int 值的二进制补码表示中最高位(“最左边”)一位之前的零位数。 如果指定的值在其二进制补码表示中没有一位,则返回 32,换句话说,如果它等于 0。

请注意,此方法与以 2 为底的对数密切相关。对于所有正 int 值 x:

  • 楼层(log2(x)) = 31 - numberOfLeadingZeros(x)
  • ceil(log2(x)) = 32 - numberOfLeadingZeros(x - 1)

参数:

参数名称 参数描述
i 要计算前导零个数的值

返回:

指定 int 值的二进制补码表示中最高位(“最左边”)一位之前的零位数,如果该值等于 0,则为 32。

numberOfTrailingZeros

public static int numberOfTrailingZeros(int i)

返回指定 int 值的二进制补码表示中最低位(“最右边”)一位之后的零位数。 如果指定的值在其二进制补码表示中没有一位,则返回 32,换句话说,如果它等于 0。

参数:

参数名称 参数描述
i 要计算尾随零个数的值

返回:

指定 int 值的二进制补码表示中最低位(“最右边”)一位之后的零位数,如果该值等于 0,则为 32。

bitCount

public static int bitCount(int i)

返回指定 int 值的二进制补码表示中的一位数。 这个函数有时被称为人口计数。

参数:

参数名称 参数描述
i 要计算其位的值

返回:

指定 int 值的二进制补码表示中的一位数。

rotateLeft

public static int rotateLeft(int i, int distance)

返回通过将指定 int 值的二进制补码表示形式向左旋转指定位数而获得的值。 (位移出左侧,或高位,右侧重新进入,或低位。)

请注意,负距离的左旋转等效于右旋转:rotateLeft(val, -distance) == rotateRight(val, distance)。 另请注意,旋转 32 的任意倍数是无操作的,因此可以忽略旋转距离的最后五位以外的所有位,即使距离为负:rotateLeft(val, distance) == rotateLeft(val, distance & 0x1F)。

参数:

参数名称 参数描述
i 其位要左移的值
distance 向左旋转的位数

返回:

通过将指定 int 值的二进制补码表示形式向左旋转指定位数获得的值。

rotateRight

public static int rotateRight(int i, int distance)

返回通过将指定 int 值的二进制补码表示向右旋转指定位数获得的值。 (位移出右手,或低位,左侧重新进入,或高位。)

请注意,负距离的右旋转相当于左旋转:rotateRight(val, -distance) == rotateLeft(val, distance)。 另请注意,旋转 32 的任何倍数都是无操作的,因此可以忽略旋转距离的最后五位以外的所有位,即使距离为负:rotateRight(val, distance) == rotateRight(val, distance & 0x1F)。

参数:

参数名称 参数描述
i 其位要右移的值
distance 向右旋转的位数

返回:

通过将指定的 int 值的二进制补码表示向右旋转指定的位数获得的值。

reverse

public static int reverse(int i)

返回通过反转指定 int 值的二进制补码表示中的位顺序获得的值。

参数:

参数名称 参数描述
i 要反转的值

返回:

通过反转指定 int 值中位的顺序获得的值。

signum

public static int signum(int i)

返回指定 int 值的符号函数。 (如果指定值为负,则返回值为 -1;如果指定值为 0,则返回 0;如果指定值为正,则返回 1。)

参数:

参数名称 参数描述
i 要计算其符号的值

返回:

指定 int 值的符号函数。

reverseBytes

public static int reverseBytes(int i)

返回通过反转指定 int 值的二进制补码表示中的字节顺序获得的值。

参数:

Parameter Name Parameter Description
i the value whose bytes are to be reversed

返回:

通过反转指定 int 值中的字节获得的值。

sum

public static int sum(int a, int b)

根据 + 运算符将两个整数相加。

参数:

参数名称 参数描述
a 第一个操作数
b 第二个操作数

返回:

a 和 b 之和

max

public static int max(int a, int b)

返回两个 int 值中的较大者,就像调用 Math#max(int, int) 一样。

参数:

参数名称 参数描述
a 第一个操作数
b 第二个操作数

返回:

a 和 b 中的较大者

min

public static int min(int a, int b)

返回两个 int 值中较小的一个,就像调用 Math#min(int, int) 一样。

参数:

参数名称 参数描述
a 第一个操作数
b 第二个操作数

返回:

a 和 b 中较小的一个