You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在PARI/GP中如何实现bit_length()的等效功能?

PARI/GP实现bit_length功能的方法

在PARI/GP中要实现类似其他语言中bit_length()(返回整数二进制表示的位数)的功能,有两种兼容官方在线解释器的实现方案:

  • 全版本通用方案:将目标整数传入binary()函数得到二进制位组成的列表,再取列表长度即可,语法为 length(binary(目标整数))
    示例:计算十进制数10的bit_length,10的二进制为1010,运行length(binary(10))返回结果为4,符合预期。
  • 高性能内置方案:最新版PARI/GP已原生内置bitlength()函数,可直接调用,语法为 bitlength(目标整数)
    示例:运行bitlength(12345)返回结果为14,和length(binary(12345))运行结果完全一致。

如果需要和Python的bit_length()行为完全对齐(即0的bit_length返回0,而非默认的1),可以自定义如下函数:
bit_length(x) = if(x == 0, 0, length(binary(x)))

测试效果:

? bit_length(0)
%1 = 0
? bit_length(1)
%2 = 1
? bit_length(2^10 - 1)
%3 = 10

内容的提问来源于stack exchange,提问作者oppressionslayer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 13:42:00