The uint8
operation converts one input value to an 8-bit unsigned
integer. The operand may be:
123
) or hexadecimal (0x7B
);Conversion succeeds only when the value fits in the range 0 … 255. If the
operand is negative, exceeds 255, cannot be parsed as an integer, or is a float
with a fractional part, uint8
raises an error. The operation never mutates
its input; it returns a new value whose concrete type is 8-bit unsigned
integer.
[ $destination ] uint8 value
$destination
is optional; if omitted, the converted value is assigned to
_
.
Exactly one operand must follow uint8
. Writing uint8
with no operand is
shorthand for uint8 _
.
Convert a decimal literal:
$byte uint8 200 # $byte holds uint8 value 200
Convert a hexadecimal string:
$hex let "0xFF"
$max uint8 $hex # $max is 255
Convert the current _
in place:
let 42
uint8 # same as uint8 _
Overflow triggers an error:
uint8 300 # error: value exceeds 255
Negative numbers are rejected:
uint8 -1 # error: negative value not allowed
Fractions are rejected:
uint8 3.5 # error: fractional part not allowed
uint8
always yields a single uint8 value, never rebinds existing variables,
and adheres to Gendo’s single-assignment rule.