ryangriggs / baseconvert
支持任意数字字符集的进制转换实用函数。
Requires
- php: ^5.6
This package is auto-updated.
Last update: 2024-09-17 10:39:04 UTC
README
PHP任意进制转换函数
baseconvert 是一个快速简单的PHP函数,可以将数字从任意进制转换为其他进制。它可以从十进制转换为任何其他进制,包括二进制、八进制、十六进制或任何您能想象的任意进制。它还可以在任意进制之间转换。想从二进制转换为八进制?从十六进制转换到包含23个字母数字字符的进制呢?是的,它能做到!
根据需要,它可以使用0位数字填充结果。
进制字符集可自定义,因此可以使用任何字符。
函数参数
baseconvert($value, $charset, $pad, $from_charset)
- $value = 要转换的值(在任何进制中,必须与 $from_charset 中列出的字符匹配)
- $charset = 要用于输出进制的数字列表。每个数字必须是唯一的,可以以无空格的字符串或数字数组的形式列出。一个进制必须至少包含2个字符。
- $pad - 使用基字符集的0位数字将结果左填充到 $pad 位。将 $pad 设置为 false [默认] 跳过填充,或指定结果的长度。结果长度超过 $pad 位时将按原样返回。
- $from_charset - 解析 $value 时使用的字符集。默认情况下,这是 "0123456789",即十进制。
示例
// 从十进制到其他进制
// 使用字符 0 和 1 将十进制值 "100" 转换为二进制。(二进制)
baseconvert(100, "01"); // 结果:1100100
// 使用字符 0 和 1(二进制)将十进制值 "100" 转换为8位填充
baseconvert(100, "01", 8); // 结果:01100100
// 将十进制值 "100" 转换为十六进制
baseconvert(100, "0123456789abcdef"); // 结果:64
// 从其他进制到十进制
// 将十六进制值 0xDEADBEEF 转换为十进制
baseconvert("DEADBEEF", "0123456789", false, "0123456789ABCDEF"); // 结果:3735928559
// 将二进制值 10010100101110 转换为十进制
baseconvert("10010100101110", "0123456789", false, "01"); // 结果 9518
// 在任意进制之间转换
// 将八进制 03773 转换为十六进制
baseconvert("03773", "0123456789abcdef", false, "01234567"); // 结果:7fb
// 将值 "GACT"(使用字符 "A", "C", "G", "T" 的四进制),转换为使用字符 "X", "Y" 和 "Z" 的三进制
baseconvert("GACT", "XYZ", false, "ACGT"); // 结果 YZXXX
// 将二进制 1011010110101011 转换为使用字符 !, @, #, $, %, ^, &, *, =, :, ?, + 的十二进制
baseconvert("1011010110101011", "!@#$%^&=:?+", false, "01"); // 结果:##?+
... 我想你已经明白了。