OP_ABS ​
INFO
Opcode number: 144
Byte representation: 0x90
Short description: Converts the top item on the stack to its absolute value.
OP_ABS
changes the top item on the stack to its absolute value, effectively removing any negative sign if present. This operation is useful when only the magnitude of a number is needed, regardless of its original sign.
Operation ​
- Take the top item from the stack.
- If the item is negative, make it positive.
- Push the result back onto the stack as the new top item.
Notes ​
OP_ABS
works only on items that can be interpreted as integers, which in Bitcoin Script means byte arrays up to 4 bytes in length.- If the top item is already positive or zero, applying
OP_ABS
has no effect. - If the stack is empty when
OP_ABS
is executed, the script will fail.
Examples ​
Example 1 ​
Converting a negative integer to its absolute value:
shell
# ASM script
OP_1NEGATE OP_ABS
# Raw script
8f90
# Stack (before OP_ABS)
-1 # top
# Stack (after OP_ABS)
1 # result after taking absolute value
Example 2 ​
Applying OP_ABS
to a positive integer:
shell
# ASM script
OP_2 OP_ABS
# Raw script
5290
# Stack (before OP_ABS)
2 # top
# Stack (after OP_ABS)
2 # no change, already positive