GMP 库中是否有零常数?
Is there a zero constant in the GMP library?
在一个程序中,我必须检查某个数字是否等于零。一种方法是只初始化一个 mpz_t
并检查原始数字是否等于它。但是 GMP 中肯定有一个零常数,比如 Java & Kotlin?
中的 BigInteger.ZERO
(不知何故 this 页面不包含我想要的内容;我确实“检查了很好的手册”并使用了搜索引擎,对于那些遵守此页面上的标准礼貌水平的人.)
非常感谢您!
编辑:我刚刚了解到可以将 mpz_t 与整数进行比较,这样就可以做类似 mpz_cmp_ui(variable, 0) == 0
的事情。 Marc Glisse 的答案给出的解决方案可能更快。
要测试 z
是否为零,您可以测试 mpz_sgn(z)==0
或 mpz_size(z)==0
,您不需要值为 0 的 mpz_t。如您所见,您还可以将 z
与 mpz_cmp_ui
或 mpz_cmp_si
.
的本机整数进行比较
没有预定义常量 0。如果需要,调用 mpz_init
足够便宜(无需分配)来创建一个零。
在一个程序中,我必须检查某个数字是否等于零。一种方法是只初始化一个 mpz_t
并检查原始数字是否等于它。但是 GMP 中肯定有一个零常数,比如 Java & Kotlin?
BigInteger.ZERO
(不知何故 this 页面不包含我想要的内容;我确实“检查了很好的手册”并使用了搜索引擎,对于那些遵守此页面上的标准礼貌水平的人.)
非常感谢您!
编辑:我刚刚了解到可以将 mpz_t 与整数进行比较,这样就可以做类似 mpz_cmp_ui(variable, 0) == 0
的事情。 Marc Glisse 的答案给出的解决方案可能更快。
要测试 z
是否为零,您可以测试 mpz_sgn(z)==0
或 mpz_size(z)==0
,您不需要值为 0 的 mpz_t。如您所见,您还可以将 z
与 mpz_cmp_ui
或 mpz_cmp_si
.
没有预定义常量 0。如果需要,调用 mpz_init
足够便宜(无需分配)来创建一个零。