int width
) Returns the least significant width
bits of this integer as a
non-negative number (i.e. unsigned representation). The returned value has
zeros in all bit positions higher than width
.
(-1).toUnsigned(5) == 32 // 11111111 -> 00011111
This operation can be used to simulate arithmetic from low level languages. For example, to increment an 8 bit quantity:
q = (q + 1).toUnsigned(8);
q
will count from 0
up to 255
and then wrap around to 0
.
If the input fits in width
bits without truncation, the result is the
same as the input. The minimum width needed to avoid truncation of x
is
given by x.bitLength
, i.e.
x == x.toUnsigned(x.bitLength);
Source
/**
* Returns the least significant [width] bits of this integer as a
* non-negative number (i.e. unsigned representation). The returned value has
* zeros in all bit positions higher than [width].
*
* (-1).toUnsigned(5) == 32 // 11111111 -> 00011111
*
* This operation can be used to simulate arithmetic from low level languages.
* For example, to increment an 8 bit quantity:
*
* q = (q + 1).toUnsigned(8);
*
* `q` will count from `0` up to `255` and then wrap around to `0`.
*
* If the input fits in [width] bits without truncation, the result is the
* same as the input. The minimum width needed to avoid truncation of `x` is
* given by `x.bitLength`, i.e.
*
* x == x.toUnsigned(x.bitLength);
*/
int toUnsigned(int width);