gpt4 book ai didi

perl - 在 32 位 perl 中使用 64 位整数和十六进制

转载 作者:行者123 更新时间:2023-12-01 05:00:11 26 4
gpt4 key购买 nike

我想编写一个 perl 脚本来解析其中包含大量 64 位整数的文本文件。所有整数都用十六进制写。

我需要

  • 从输入
  • 读取十六进制
  • 比较 64 位整数(<=>)
  • 减去 64 位整数
  • 输出 64 位十六进制

  • 我需要使用 32 位 perl,并且不能使用任何 CPAN/外部模块(脚本必须是可移植的)。

    PS我的perl是5.8(这是将用于脚本的最小版本)

    PPS bignum/bigint 错误:
    $ perl -e 'use bignum; $_=hex("0x0000123412345678")'
    Integer overflow in hexadecimal number at -e line 1.

    $ perl -e 'use bigint; $_=hex("0x0000123412345678")'
    Integer overflow in hexadecimal number at -e line 1.

    PPPS:这里没有 from_hex
    $ perl -e 'use Math::BigInt; $_=Math::BigInt->from_hex("0x0000123412345678");'
    Can't locate object method "from_hex" via package "Math::BigInt" at -e line 1.

    并且没有 qw/hex/ :
    $ perl -e 'use bigint qw/hex/; $_=hex("0x0000123412345678")'
    unknown option hex at /usr/lib/perl5/5.8/bigint.pm line...

    PPPPS:但 new() 有效:
    $ perl -e 'use Math::BigInt; $_=Math::BigInt->new("0x0000123412345678"); print  $_->as_hex(),"\n";'
    0x123412345678

    最佳答案

    核心编译指示 bigint将让您透明地使用大于系统支持的整数。 Math::BigInt 中有相关函数核心库来转换和转换为十六进制表示。

    关于perl - 在 32 位 perl 中使用 64 位整数和十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7325963/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com