## Contents |

## Effect

Performs a bitwise IMP-operation (logical implication) between two expressions.

The bit is not set when the first bit being true implicates that the second bit is false, it is otherwise set. For each bit, the results are:

0 IMP 0 = 1

0 IMP 1 = 1

1 IMP 0 = 0

1 IMP 1 = 1

This operation is equivalent to: ((NOT first_operand) OR second_operand)

## Syntax

<Value> IMP <Value>

## Parameter

**<Value>** is a value between -32768 and 32767. It can also be a numeric variable, an mathematical expression or expression from a condition.

Notes:

- If you use binary expressions, it is best to put the first expression in parenthesis to avoid the bug in interpreter that causes a syntax error. This problem does not happen with decimal, hexadecimal or octal expressions.

- When the expression is performed in a condition (IF...THEN...ELSE or IF...GOTO...ELSE), if the result of the whole expression is zero the value is taken as false, otherwise it's taken as true.

## Examples

PRINT 15 IMP 11

-5

Binary explanation:

0000000000001111 0000000000001011 IMP ---------------- 1111111111111011

-5 is actually the number 65531

PRINT 5 IMP 13

-1

Binary explanation:

0000000000000101 0000000000001101 IMP ---------------- 1111111111111111

-1 is actually the number 65535

PRINT &B00001111 IMP &B11110001

Syntax error

PRINT (&B00001111) IMP &B11110001

-15

-15 is actually the number 65521

## Related to

## Compatibility

MSX-BASIC 1.0 or higher