Perl 64-битная шестнадцатеричная функция - PullRequest
0 голосов
/ 08 июля 2011

Я хотел бы прочитать шестнадцатеричные 64-битные числа и посчитать их с помощью Perl.

Я попробовал следующее, но, похоже, это не работает.

> perl -e 'use integer; printf("%x\n", hex("0xffffffffffff")<<2)'
Integer overflow in hexadecimal number at -e line 1.
fffffffc

Ответы [ 3 ]

3 голосов
/ 08 июля 2011

Отлично работает на моей 64-битной системе.

Попробуйте use bignum вместо use integer.

1 голос
/ 08 июля 2011

Вместо того, чтобы использовать bignum, я предпочитаю выборочно использовать Math :: BigInt:

perl -wle'use Math::BigInt;  $number = Math::BigInt->new("0xffffffffffff"); $number += 67; print $number->as_hex()'
1 голос
/ 08 июля 2011

Возможно, что-то в вашей платформе / ОС не полностью 64-битное.Попробуйте Math :: BigInt, чтобы избежать каких-либо проблем с этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...