{{fbdoc item="title" value="Operator IMP= (Implication and Assign)"}}---- Performs a bitwise-imp (implication) and assigns the result to a variable {{fbdoc item="syntax"}}## [[KeyPgDeclare|declare]] [[KeyPgOperator|operator]] **Imp=** ( [[KeyPgByref|byref]] //lhs// [[KeyPgAs|as]] //T1//, [[KeyPgByref|byref]] //rhs// [[KeyPgAs|as]] //T2// ) ## {{fbdoc item="usage"}}## //lhs// **Imp=** //rhs// ## {{fbdoc item="param"}} ##//lhs//## The variable to assign to. ##//T1//## Any numeric or boolean type. ##//rhs//## The value to perform a bitwise-imp (implication) with ##//lhs//##. ##//T2//## Any numeric or boolean type. {{fbdoc item="desc"}} This operator performs a bitwise-imp and assigns the result to a variable (for conversion of a boolean to an integer, false or true boolean value becomes 0 or -1 integer value). It is functionally equivalent to: ##//lhs// = //lhs// [[KeyPgOpImp|imp]] //rhs//## ##**Imp**## is a bitwise operator which is the same as (##[[KeyPgOpNot|Not]]## ##//lhs//##) ##[[KeyPgOpOr|Or]]## ##//rhs//##. ##**Imp=**## compares each bit of its operands, ##//lhs//## and ##//rhs//##, and if the bit in ##//lhs//## is 0 or the bit in ##//rhs//## is 1, then the corresponding bit in the first operand, ##//lhs//##, is set to 1, otherwise it is set to 0. This operator can be overloaded for user-defined types as a member ##[[KeyPgOperator|Operator]]## using the appropriate syntax. //Note: Similarly to the operator '=[>]' (assign), the alternative symbol 'Imp=>' can be also used.// {{fbdoc item="ex"}} {{fbdoc item="filename" value="examples/manual/operator/imp-assign.bas"}}%%(freebasic) dim as ubyte a = &b00110011 dim as ubyte b = &b01010101 a Imp= b '' Result a = &b11011101 print bin(a) %% {{fbdoc item="lang"}} - In the //[[CompilerOptlang|-lang qb]]// dialect, this operator cannot be overloaded. {{fbdoc item="diff"}} - New to ""FreeBASIC"" {{fbdoc item="see"}} - ##[[KeyPgOpImp|Imp]]## - [[CatPgOpAssignment|Assignment Operators]] {{fbdoc item="back" value="CatPgOperators|Operators"}}