http://www.perlmonks.org?node_id=287711


in reply to Re: Bit by a Hex String
in thread Bit by a Hex String

Okay, first I need to say, I love your BC solution. It's simple, and elegant. That being said I did some playing around with BigInt, so here's the code I came up with:
sub shift_bs{ $add = shift; $source = shift; $num1=Math::BigInt->new("0x".$source); $num1->blsft(1); $num1+=$add; $temp = $num1->as_hex(); $temp =~ /0x(.*)/; return $1; }
Yeah, the $add is a legacy thing, but that's okay. I want to thank you especially, because you went to quite a bit of work to come up with that code.
==
Kwyjibo. A big, dumb, balding North American ape. With no chin.

Replies are listed 'Best First'.
Re: Bit by a Hex String
by Abigail-II (Bishop) on Aug 29, 2003 at 15:45 UTC
    $num1=Math::BigInt->new("0x".$source);

    Ah, I didn't know you could do that. The Math::BigInt manual page says:

    Input Input values to these routines may be either Math::Big- Int objects or strings of the form "/^[+-]?[\d]+\.?[\d]*E?[+-]?[\d]*$/".

    Abigail

      Neither did I

      I only tried it after seeing this in the documentation:

      Examples for converting: my $x = Math::BigInt->new('0b1'.'01' x 123); print "bin: ",$x->as_bin()," hex:",$x->as_hex()," dec: ",$x,"\n";

      ==
      Kwyjibo. A big, dumb, balding North American ape. With no chin.