private FixedPointDecimal(uint significand, bool isNegative) { if(significand > 1073741823u) { throw new Exception(__RangeScaleExceptionMsg); } // Store significand and HasValue bit. _data = 0x80000000 | significand; // Store sign bit (we explicitly convert -0 to +0). if(isNegative && significand !=0) { _data |= 0x40000000; } }