Dan writes: > >The "some multiple" being the next largest power of 256 that contains the > >value, or the width that the value happens to be stored in at that time? > >(Based on previous values assigned to that PMC which may have widened it) > > Good question. The size of the bignum, if it's been declared to have > a maximum size, or the maximum size that it's been, though that > doesn't feel particularly right.
$bignum1 = 2^3283 + 1; $bignum2 = $bignum1 - 2^3283; # Q1 what's sizeof(bignum2) and how did it get that way? print $bignum1 << 1; # shift # Q2 expected output? print $bignum1 <<< 1; # rotate # Q3 expected output? Q1 Given my current understanding, bignum2 should be either int or a bignum with a 1-byte data field (the principle of 'snapping to least size' espoused by Dan et al. in the math discussion). Q2 the decimal representation of the binary number 1{3283 zeroes}10, though my hazy understanding of bignum is that the in-memory representation is not necessarily binary, so that would be a pretty annoying piece of code. Internally a bignum. Q3 the decimal representation of the binary number 11. Internally carries the 2^3283 size of $bignum1 in case the owner intends on rotating it back. Violates the principle of snapping to least size but follows the principle of least surprise. F.