32-bit unsigned values on any word: u32 reads a word’s low 32 bits as the value, u32-bits takes the value back to the word’s bits, and u32-srl shifts those bits right logically.
u32The unsigned value of a word’s low 32 bits.
Returns: INTEGER — The value, 0 to 4294967295: a bigint from 2^31 up on a 4-byte word
Examples:
(do (import x/num/u32 u32) (u32 -1)) => 4294967295u32-bitsThe word holding a 32-bit value’s bits, the form a computation in the word’s bits takes.
Returns: INTEGER — The value’s 32 bits as the word holds them: negative from 2^31 up on a 4-byte word
Examples:
(do (import x/num/u32 u32 u32-bits) (u32 (u32-bits 4294967295))) => 4294967295u32-srlThe logical right shift of 32 bits held in a word.
Returns: INTEGER — x shifted right n places, zeros in from the top, as u32-bits holds it
Examples:
(do (import x/num/u32 u32 u32-bits u32-srl) (u32 (u32-srl (u32-bits 4294967295) 4))) => 268435455