On Thu, Jul 31, 2014 at 05:00:22PM +, bearophile via Digitalmars-d-learn
wrote:
Is it a good idea to add int/uint/long/ulong functions for the
left shift operation here?
https://github.com/D-Programming-Language/druntime/blob/master/src/core/checkedint.d
[...]
What would you check for?
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
On Thu, Jul 31, 2014 at 06:08:56PM +, 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
H. S. Teoh:
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.
Of course.
https://issues.dlang.org/show_bug.cgi?id=13231