That's not the same. With `value >>> n` you get integral promotions, so it breaks for `(u)short` and `(u)byte`.

```d
short x = -1;
assert(x >>> 1 == 2147483647);
x >>>= 1;
assert(x == 32767);
```
Adding casts does not help.