Mavryk_raw_protocol_001_PtAtLas.Script_bytes
Semantics of logical and bit-shift operators for bytes
bytes_or a b
returns the logical or'ed bytes of a
and b
. If the arguments have different lengths, the shorter one is 0-padded on the left before the logical operation. For example:
0x1200 OR 0x34 = 0x1200 OR 0x0034 = 0x1234 0x0012 OR 0xff = 0x0012 OR 0x00ff = 0x00ff (instead of 0xff)
bytes_and a b
returns the logical and'ed bytes of a
and b
. If the arguments have different lengths, the prefix of the longer one is removed to have the same length as the shorter one before the logical operation. For example:
0x1234 AND 0x30 = 0x34 AND 0x30 = 0x30 0x12f00f AND 0x0fff = 0xf00f AND 0x0fff = 0x000f (instead of 0x0f)
bytes_xor a b
returns the logical xor'ed bytes of a
and b
. If the arguments have different lengths, the shorter one is 0-padded on the left before the logical operation. For example:
0x1200 XOR 0x34 = 0x1200 XOR 0x0034 = 0x1234 0x0012 XOR 0xff = 0x0012 XOR 0x00ff = 0x00ed (instead of 0xed)
bytes_not a
returns the logical not'ed bytes of a
with the same length of a
. For example:
NOT 0xff00 = 0x00ff (instead of 0xff)
val bytes_lsl : bytes -> Script_int.n Script_int.num -> bytes option
bytes_lsl bytes bits
returns the bits
left shifted bytes of bytes
. If bits
is more than 64000, it returns None
.
The function always returns a longer bytes of the input if bits
is not 0. For example:
0x12 LSL 1 = 0x0024 (instead of 0x24) 0x0012 LSL 9 = 0x00002400 (instead of 0x002400 or 0x2400)
val bytes_lsr : bytes -> Script_int.n Script_int.num -> bytes
bytes_lsr bytes bits
returns the bits
right shifted bytes of bytes
.
0x1234 LSR 1 = 0x091a 0x1234 LSR 8 = 0x12 (instead of 0x0012)
val bytes_of_nat_be : Script_int.n Script_int.num -> bytes
Convert a natural number to bytes using big-endian encoding.
val nat_of_bytes_be : bytes -> Script_int.n Script_int.num
Convert bytes to a natural number using big-endian encoding.
val bytes_of_int_be : Script_int.z Script_int.num -> bytes
Convert an integer to bytes using big-endian encoding. Negative numbers are handled by two's-complement.
val int_of_bytes_be : bytes -> Script_int.z Script_int.num
Convert bytes to an integer using big-endian encoding. Negative numbers are handled by two's-complement.
module Conversion_BE : sig ... end