Quote
//echo -a doubles $not(-9) $not(-17) vs $not(-9,8) $not(-17,8)
This was already discussed :-] A second parameter was added to $not() for bigfloat because there is no way to know what the bit size is otherwise. If you don't specify the bit size, it is extrapolated from the number. You cannot use a second parameter in $not() for non-bigfloat. It doesn't do anything.

The non-bigfloat bitwise operators all assume a 32bit unsigned long and wrap around negatives/overflows/etc. using strtoul() to perform the conversion.

When we originally discussed this, it was decided that we only needed to add a bit size parameter to bigfloat $not(). None of the other bitwise identifiers know what the bit size is and extrapolate from the number, which is an arbitrary size bigfloat.

In retrospect, the bigfloat bitwise operators should work in the same way as non-bigfloat when the bit size parameter is not specified, for backward compatibility. If a bit size is specified, they need to wrap negatives to unsigned (to match the long-established non-bigfloat behaviour) using the specified bit size, etc. These changes will be in the next beta.