预定义常量

以下常量由此扩展定义,只有在扩展已编译到 PHP 或在运行时动态加载时才可用。

GMP_ROUND_ZERO (int)
GMP_ROUND_PLUSINF (int)
GMP_ROUND_MINUSINF (int)
GMP_MSW_FIRST (int)
GMP_LSW_FIRST (int)
GMP_LITTLE_ENDIAN (int)
GMP_BIG_ENDIAN (int)
GMP_NATIVE_ENDIAN (int)
GMP_VERSION (string)
GMP 库版本
GMP_MPIR_VERSION (string)
MPIR 库版本。
添加注释

用户贡献的注释 2 notes

i at tiankonguse dot com
11 年前
当我使用 var_dump 打印这些常量时,这些值是
GMP_ROUND_ZERO 0
GMP_ROUND_PLUSINF 1
GMP_ROUND_MINUSINF 2
GMP_VERSION "5.0.2"
AnonyMouse At Do Not Mail Me Dot Com
4 年前
这是一个表格,展示了在小端 64 位平台上,对 gmp_init( 0x0123456789ABCDEF ) 使用各种输入参数时,gmp_export 输出的结果。
注意,表格中的下划线用于说明“字”之间的分隔(“字”可以是 char、short、int 或 long)。

+-----------+-----+--------+-------------------------+
| 字节大小 | Sig | 字节序 | gmp_export 十六进制结果 |
+-----------+-----+--------+-------------------------+
| 1 字节 | MSW | 小端 | 01_23_45_67_89_AB_CD_EF |
+-----------+-----+--------+-------------------------+
| 1 字节 | MSW | 大端 | 01_23_45_67_89_AB_CD_EF |
+-----------+-----+--------+-------------------------+
| 1 字节 | LSW | 小端 | EF_CD_AB_89_67_45_23_01 |
+-----------+-----+--------+-------------------------+
| 1 字节 | LSW | 大端 | EF_CD_AB_89_67_45_23_01 |
+-----------+-----+--------+-------------------------+
| 2 字节 | MSW | 小端 | 2301_6745_AB89_EFCD |
+-----------+-----+--------+-------------------------+
| 2 字节 | MSW | 大端 | 0123_4567_89AB_CDEF |
+-----------+-----+--------+-------------------------+
| 2 字节 | LSW | 小端 | EFCD_AB89_6745_2301 |
+-----------+-----+--------+-------------------------+
| 2 字节 | LSW | 大端 | CDEF_89AB_4567_0123 |
+-----------+-----+--------+-------------------------+
| 4 字节 | MSW | 小端 | 67452301_EFCDAB89 |
+-----------+-----+--------+-------------------------+
| 4 字节 | MSW | 大端 | 01234567_89ABCDEF |
+-----------+-----+--------+-------------------------+
| 4 字节 | LSW | 小端 | EFCDAB89_67452301 |
+-----------+-----+--------+-------------------------+
| 4 字节 | LSW | 大端 | 89ABCDEF_01234567 |
+-----------+-----+--------+-------------------------+
| 8 字节 | MSW | 小端 | EFCDAB8967452301 |
+-----------+-----+--------+-------------------------+
| 8 字节 | MSW | 大端 | 0123456789ABCDEF |
+-----------+-----+--------+-------------------------+
| 8 字节 | LSW | 小端 | EFCDAB8967452301 |
+-----------+-----+--------+-------------------------+
| 8 字节 | LSW | 大端 | 0123456789ABCDEF |
+-----------+-----+--------+-------------------------+
请查看 https://pastebin.com/2GX4L3dq 上的完整表格

我的结论和推论
* gmp_export 似乎会剥离符号数据,就像调用 gmp_abs( $gmp_resource ) 一样
* MSW 可能代表最显著字(顺序),因为最显著(最高位)的字会先出现。
\- 一个“字”是一个数值类型(char、short、int 或 long),由 $word_size 参数决定
* LSW 可能代表最不显著字(顺序),因为最不显著(最低位)的字会先出现。
* 字节序只在使用大于 1 字节大小时才重要,因为在字节大小为 1 时,每个字节都会被复制。在字节大小为 2 时,每个 short 都会被复制。4 是 int。当复制大于一个字节的数字时,字节序很重要,因为它会改变单位大小内字节的顺序。一个 2 字节的 short 会根据字节序交换其字节,但每个字节中的位保持不变。

这个注释太长了,无法发布,所以我不得不将代码移到 https://pastebin.com/gWLU4GF8 以创建上面的表格
To Top