Checked shift?

H. S. Teoh via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Jul 31 11:28:37 PDT 2014


On Thu, Jul 31, 2014 at 06:08:56PM +0000, bearophile via Digitalmars-d-learn wrote:
> H. S. Teoh:
> 
> >What would you check for? Shifting something that already has its
> >high bit set?
> 
> If you have a uint where the 3 most significant bits are 1, and you
> shift it 3 bits on the left, you lose those three bits, you have an
> overflow. The point of checkedint functions/intrinsics is to reveal
> overflows.
[...]

OK, makes sense. But what about if only the most significant bit is 1?
Wouldn't that also be an overflow? So you're essentially checking if the
topmost n bits are zero, where n is the number of bits you wish to shift
by.


T

-- 
BREAKFAST.COM halted...Cereal Port Not Responding. -- YHL


More information about the Digitalmars-d-learn mailing list