java.lang.Object
cn.wjybxx.base.MathCommon
- 作者:
- wjybxx date 2023/3/31
-
字段概要
字段修饰符和类型字段说明static final floatstatic final floatstatic final intstatic final intstatic final intstatic final intstatic final long有符号48位整数的最大值(140737488355327L)static final long有符号48位整数的最小值(-140737488355328L)static final longstatic final longstatic final longstatic final longstatic final longstatic final longstatic final longstatic final longstatic final longstatic final intstatic final Randomstatic final long32位无符号整数的最大值static final long48位无符号整数的最大值 -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明static intbitCount(int n) 计算int32值中1的数量static intbitCount(long n) 计算int64值中1的数量static intBitCountFast(int n) 计算int值中1的数量 -- 适用于多数位为0的情况static intBitCountFast(long n) 计算int值中1的数量 -- 适用于多数位为0的情况static doubleclamp(double value, double min, double max) static floatclamp(double value, float min, float max) 将double值约束到float范围static floatclamp(float value, float min, float max) static intclamp(int value, int min, int max) static intclamp(long value, int min, int max) 将long值约束到int范围static longclamp(long value, long min, long max) static doubleclamp01(double value) static floatclamp01(float value) static longcomposeIntToLong(int higher, int lower) 将两个int聚合为longstatic intcomposeShortToInt(short higher, short lower) 将两个short聚合为intstatic inthigherIntOfLong(long value) static shorthigherShortOfInt(int value) static booleanisBetween(double value, double min, double max) static booleanisBetween(float value, float min, float max) static booleanisBetween(int value, int min, int max) static booleanisBetween(long value, long min, long max) static booleanisBetween(short value, short min, short max) static booleanisEqual(double a, double b) static booleanisEqual(double a, double b, double tolerance) static booleanisEqual(float a, float b) static booleanisEqual(float a, float b, float tolerance) static booleanisEven(int x) static booleanisInt48(long value) 判断一个数是否是有效的int48static booleanisOdd(int x) static booleanisPowerOfTwo(int x) 判断一个值是否是2的整次幂static booleanisUInt32(long value) 判断一个数是否是有效的uint32static booleanisUInt48(long value) 判断一个数是否是有效的uint48static booleanisZero(double value) static booleanisZero(double value, double tolerance) static booleanisZero(float value) static booleanisZero(float value, float tolerance) static intlowerIntOfLong(long value) static shortlowerShortOfInt(int value) static doublemax(double a, double b, double c) static floatmax(float a, float b, float c) static intmax(int a, int b, int c) static longmax(long a, long b, long c) static intmax(short a, short b) static intmax(short a, short b, short c) static doublemin(double a, double b, double c) static floatmin(float a, float b, float c) static intmin(int a, int b, int c) static longmin(long a, long b, long c) static intmin(short a, short b) static intmin(short a, short b, short c) static intmultiplyAndClamp(int value, int delta) 求两个int的乘积,溢出时clamp到int范围static intmultiplyAndClamp(int value, int delta, int min, int max) 求两个int的乘积,同时clamp到给定的范围static intmultiplyToInt(short a, short b) 两个short安全相乘,返回一个int,避免越界;相乘之后再强转可能越界.static longmultiplyToLong(int a, int b) 两个int安全相乘,返回一个long,避免越界;相乘之后再强转可能越界。static intnextPowerOfTwo(int num) 计算num最接近下一个整2次幂;如果自身是2的整次幂,则会返回自身static longnextPowerOfTwo(long num) 计算num最接近下一个整2次幂;如果自身是2的整次幂,则会返回自身static intsumAndClamp(int value, int delta) 求两个int的和,溢出时clamp到int范围static intsumAndClamp(int value, int delta, int min, int max) 求两个int的和,同时clamp到给定的范围
-
字段详细资料
-
MAX_POWER_OF_TWO
public static final int MAX_POWER_OF_TWO- 另请参阅:
-
LONG_MAX_POWER_OF_TWO
public static final long LONG_MAX_POWER_OF_TWO- 另请参阅:
-
FLOAT_ROUNDING_ERROR
public static final float FLOAT_ROUNDING_ERROR- 另请参阅:
-
DOUBLE_ROUNDING_ERROR
public static final float DOUBLE_ROUNDING_ERROR- 另请参阅:
-
UINT32_MAX_VALUE
public static final long UINT32_MAX_VALUE32位无符号整数的最大值- 另请参阅:
-
UINT48_MAX_VALUE
public static final long UINT48_MAX_VALUE48位无符号整数的最大值- 另请参阅:
-
INT48_MAX_VALUE
public static final long INT48_MAX_VALUE有符号48位整数的最大值(140737488355327L)- 另请参阅:
-
INT48_MIN_VALUE
public static final long INT48_MIN_VALUE有符号48位整数的最小值(-140737488355328L)- 另请参阅:
-
INT_MASK4
public static final int INT_MASK4- 另请参阅:
-
INT_MASK3
public static final int INT_MASK3- 另请参阅:
-
INT_MASK2
public static final int INT_MASK2- 另请参阅:
-
INT_MASK1
public static final int INT_MASK1- 另请参阅:
-
LONG_MASK8
public static final long LONG_MASK8- 另请参阅:
-
LONG_MASK7
public static final long LONG_MASK7- 另请参阅:
-
LONG_MASK6
public static final long LONG_MASK6- 另请参阅:
-
LONG_MASK5
public static final long LONG_MASK5- 另请参阅:
-
LONG_MASK4
public static final long LONG_MASK4- 另请参阅:
-
LONG_MASK3
public static final long LONG_MASK3- 另请参阅:
-
LONG_MASK2
public static final long LONG_MASK2- 另请参阅:
-
LONG_MASK1
public static final long LONG_MASK1- 另请参阅:
-
SHARED_RANDOM
-
-
构造器详细资料
-
MathCommon
protected MathCommon()
-
-
方法详细资料
-
isEven
public static boolean isEven(int x) - 返回:
- 如果给定参数是【偶数】则返回true
-
isOdd
public static boolean isOdd(int x) - 返回:
- 如果给定参数是【奇数】则返回true
-
isUInt32
public static boolean isUInt32(long value) 判断一个数是否是有效的uint32 -
isUInt48
public static boolean isUInt48(long value) 判断一个数是否是有效的uint48 -
isInt48
public static boolean isInt48(long value) 判断一个数是否是有效的int48 -
isPowerOfTwo
public static boolean isPowerOfTwo(int x) 判断一个值是否是2的整次幂 -
nextPowerOfTwo
public static int nextPowerOfTwo(int num) 计算num最接近下一个整2次幂;如果自身是2的整次幂,则会返回自身 -
nextPowerOfTwo
public static long nextPowerOfTwo(long num) 计算num最接近下一个整2次幂;如果自身是2的整次幂,则会返回自身 -
bitCount
public static int bitCount(int n) 计算int32值中1的数量 -
bitCount
public static int bitCount(long n) 计算int64值中1的数量 -
BitCountFast
public static int BitCountFast(int n) 计算int值中1的数量 -- 适用于多数位为0的情况 -
BitCountFast
public static int BitCountFast(long n) 计算int值中1的数量 -- 适用于多数位为0的情况 -
composeIntToLong
public static long composeIntToLong(int higher, int lower) 将两个int聚合为long- 参数:
higher- 高32位lower- 低32位- 返回:
- long
-
higherIntOfLong
public static int higherIntOfLong(long value) -
lowerIntOfLong
public static int lowerIntOfLong(long value) -
composeShortToInt
public static int composeShortToInt(short higher, short lower) 将两个short聚合为int- 参数:
higher- 高16位lower- 低16位- 返回:
- int
-
higherShortOfInt
public static short higherShortOfInt(int value) -
lowerShortOfInt
public static short lowerShortOfInt(int value) -
multiplyToLong
public static long multiplyToLong(int a, int b) 两个int安全相乘,返回一个long,避免越界;相乘之后再强转可能越界。 -
multiplyToInt
public static int multiplyToInt(short a, short b) 两个short安全相乘,返回一个int,避免越界;相乘之后再强转可能越界. -
clamp
public static int clamp(int value, int min, int max) -
clamp
public static long clamp(long value, long min, long max) -
clamp
public static float clamp(float value, float min, float max) -
clamp
public static double clamp(double value, double min, double max) -
clamp
public static int clamp(long value, int min, int max) 将long值约束到int范围 -
clamp
public static float clamp(double value, float min, float max) 将double值约束到float范围 -
clamp01
public static float clamp01(float value) -
clamp01
public static double clamp01(double value) -
sumAndClamp
public static int sumAndClamp(int value, int delta) 求两个int的和,溢出时clamp到int范围 -
sumAndClamp
public static int sumAndClamp(int value, int delta, int min, int max) 求两个int的和,同时clamp到给定的范围 -
multiplyAndClamp
public static int multiplyAndClamp(int value, int delta) 求两个int的乘积,溢出时clamp到int范围 -
multiplyAndClamp
public static int multiplyAndClamp(int value, int delta, int min, int max) 求两个int的乘积,同时clamp到给定的范围 -
min
public static int min(int a, int b, int c) -
max
public static int max(int a, int b, int c) -
min
public static long min(long a, long b, long c) -
max
public static long max(long a, long b, long c) -
min
public static float min(float a, float b, float c) -
max
public static float max(float a, float b, float c) -
min
public static double min(double a, double b, double c) -
max
public static double max(double a, double b, double c) -
min
public static int min(short a, short b) -
max
public static int max(short a, short b) -
min
public static int min(short a, short b, short c) -
max
public static int max(short a, short b, short c) -
isBetween
public static boolean isBetween(short value, short min, short max) -
isBetween
public static boolean isBetween(int value, int min, int max) -
isBetween
public static boolean isBetween(long value, long min, long max) -
isBetween
public static boolean isBetween(float value, float min, float max) -
isBetween
public static boolean isBetween(double value, double min, double max) -
isZero
public static boolean isZero(float value) -
isZero
public static boolean isZero(float value, float tolerance) -
isEqual
public static boolean isEqual(float a, float b) -
isEqual
public static boolean isEqual(float a, float b, float tolerance) -
isZero
public static boolean isZero(double value) -
isZero
public static boolean isZero(double value, double tolerance) -
isEqual
public static boolean isEqual(double a, double b) -
isEqual
public static boolean isEqual(double a, double b, double tolerance)
-