数值类型
标准数值类型
下面展示了 Base 中 Number 的所有子类型的类型树。 抽象类型已经标出,其余的是具体类型。
抽象数值类型
| 函数名 | 简介 |
| Number | 所有数字类型的抽象超类型 |
| Real | 所有实数类型的抽象超类型 |
| AbstractFloat | 所有浮点数类型的抽象超类型 |
| Integer | 所有整数类型的抽象超类型 |
| Signed | 所有有符号整数类型的抽象超类型 |
| Unsigned | 所有无符号整数类型的抽象超类型 |
| AbstractIrrational | 表示精确无理数值的数值类型 |
具体数值类型
| 函数名 | 简介 |
| Float16 | 16 位浮点数类型 |
| Float32 | 32 位浮点数类型 |
| Float64 | 64 位浮点数类型 |
| BigFloat | 任意精度浮点数类型 |
| Bool | 布尔类型 |
| Int8 | 8 位有符号整数类型 |
| UInt8 | 8 位无符号整数类型 |
| Int16 | 16 位有符号整数类型 |
| UInt16 | 16 位无符号整数类型 |
| Int32 | 32 位有符号整数类型 |
| UInt32 | 32 位无符号整数类型 |
| Int64 | 64 位有符号整数类型 |
| UInt64 | 64 位无符号整数类型 |
| Int128 | 128 位有符号整数类型 |
| UInt128 | 128 位无符号整数类型 |
| BigInt | 任意精度整数类型 |
| Complex | 复数类型 |
| Rational | 有理数类型 |
| Irrational | 精确无理数的数值类型 |
数据格式
| 函数名 | 简介 |
| digits | 返回一个数组,元素类型为指定类型(默认是 Int),表示整数 n 在指定进制下的各个位数 |
| digits! | 将整数 n 在指定进制下的各个位数填充到给定数组中 |
| bitstring | 返回一个字符串,表示某个原始类型的二进制位的字面表示 |
| parse | 将表示平台的字符串三元组解析回对应的 Platform 对象 |
| tryparse | 类似于 parse,但如果字符串不包含有效数字,则返回 nothing |
| big | 将数字转换为最大精度表示,通常是 BigInt 或 BigFloat |
| signed | 将整数类型 T 转换为同尺寸的有符号类型 |
| unsigned | 将整数类型转换为同尺寸的无符号类型 |
| float | 将数字或数组转换为浮点数数据类型 |
| Base.Math.significand | 提取浮点数的有效数字部分 |
| Base.Math.exponent | 返回满足 2^y ≤ abs(x) 的最大整数 y |
| complex | 将实数或实数数组转换为复数或复数数组 |
| bswap | 将整数 n 的字节顺序进行反转 |
| hex2bytes | 将一个可迭代对象转换为对应的字节向量,其中每两个连续的十六进制数字组成一个字节 |
| hex2bytes! | 将表示十六进制字符串的字节序列就地转换为二进制表示,结果写入指定的目标数组中 |
| bytes2hex | 将字节迭代器转换为对应的小写十六进制字符串 |
常用数值函数和常量
| 函数名 | 简介 |
| one | 返回乘法单位元,即满足 one(x) * x == x * one(x) == x 的值 |
| oneunit | 返回将乘法单位元 one(x) 转换为指定类型 T 后的值 |
| zero | 获取与参数 x 类型对应的加法单位元 |
| im | 表示虚部单位 |
| Base.MathConstants.pi | 常数π |
| Base.MathConstants.ℯ | 常数ℯ |
| Base.MathConstants.catalan | 卡特兰常数 |
| Base.MathConstants.eulergamma | 欧拉常数 |
| Base.MathConstants.golden | 黄金比例 |
| Inf | 表示 Float64 类型的正无穷大 |
| Inf64 | 表示 Float64 类型的正无穷大 |
| Inf32 | 表示 Float32 类型的正无穷大 |
| Inf16 | 表示 Float16 类型的正无穷大 |
| NaN | 表示 Float64 类型的非数字值 |
| NaN64 | 表示 Float64 类型的非数字值 |
| NaN32 | 表示 Float32 类型的非数字值 |
| NaN16 | 表示 Float16 类型的非数字值 |
| issubnormal | 判断一个浮点数是否为次正规数(即非常小但非零的浮点数) |
| isfinite | 判断一个数值是否为有限数 |
| isinf | 判断数值是否为无穷大 |
| isnan | 判断数值是否为非数字 |
| iszero | 如果 x 等于零,返回 true;如果 x 是数组,则检查数组中所有元素是否都为零 |
| isone | 如果 x 等于加法单位元 one(x),则返回 true;如果 x 是数组,则检查是否为单位矩阵 |
| nextfloat | 返回与 x 类型相同且严格大于 x 的最小浮点数 |
| prevfloat | 返回与 x 类型相同且严格小于 x 的最大浮点数 |
| isinteger | 判断 x 是否在数值上等于某个整数 |
| isreal | 判断 x 或其所有元素是否在数值上等于某个实数,包括无穷大和 NaN |
| Float32 | 将 x 转换为 Float32 类型 |
| Float64 | 将 x 转换为 Float64 类型 |
| Base.Rounding.rounding | 获取类型 T 当前的浮点舍入模式,控制基本算术函数(加、减、乘、除、开方)和类型转换的舍入行为 |
| Base.Rounding.setrounding | 设置类型 T 的浮点舍入模式 |
| Base.Rounding.get_zero_subnormals | 判断次正规浮点数的运算是否严格遵守 IEEE 规则,若遵守则返回 false |
| Base.Rounding.set_zero_subnormals | 用于设置浮点运算中是否允许将次正规数转换为零 |
整型
| 函数名 | 简介 |
| count_ones | 计算整数 x 的二进制表示中 1 的个数 |
| count_zeros | 计算整数 x 的二进制表示中 0 的个数 |
| leading_zeros | 计算整数 x 的二进制表示中前导的 0 的个数 |
| leading_ones | 计算整数 x 的二进制表示中前导的 1 的个数 |
| trailing_zeros | 计算整数 x 的二进制表示中尾部的零的数量 |
| trailing_ones | 计算整数 x 的二进制表示中尾部的 1 的数量 |
| isodd | 判断 x 是否为奇数 |
| iseven | 判断 x 是否为偶数 |
| @int128_str | 将字符串 str 解析为 Int128 类型的整数 |
| @uint128_str | 将字符串 str 解析为 UInt128 类型的整数 |
BigFloats 和 BigInts
BigFloat 和 BigInt 类型分别实现了任意精度的浮点数和整数运算。其中,BigFloat 使用的是 GNU MPFR 库,而 BigInt 使用的是 GNU 多精度运算库(GMP)。
| 函数名 | 简介 |
| Base.MPFR.BigFloat | 根据指定精度 precision,将 x 转换为任意精度的浮点数 |
| precision | 获取浮点数的有效精度,或浮点类型的精度 |
| Base.MPFR.setprecision | 设置浮点类型的运算精度 |
| Base.GMP.BigInt | 创建一个任意精度整数 |
| @big_str | 将字符串解析为 BigInt 或 BigFloat 类型 |