window 1, @"Bitwise Operations", (0,0,650,270) def fn rotl( b as long, n as long ) as long = ( ( 2^n * b) mod 256) or (b > 127) def fn rotr( b as long, n as long ) as long = (b >> n mod 32) or ( b << (32-n) mod 32) local fn bitwise( a as long, b as long ) print @"Input: a = "; a; @" b = "; b print print @"AND :", @"a && b = ", bin(a && b), @": "; a && b print @"NAND :", @"a ^& b = ", bin(a ^& b), @": "; a ^& b print @"OR :", @"a || b = ", bin(a || b), @": "; a || b print @"NOR :", @"a ^| b = ", bin(a ^| b), @": "; a ^| b print @"XOR :", @"a ^^ b = ", bin(a ^^ b), @": "; a ^^ b print @"NOT :", @" not a = ", bin( not a), @": "; not a print print @"Left shift :", @"a << b =", bin(a << b), @": "; a << b print @"Right shift :", @"a >> b =", bin(a >> b), @": "; a >> b print print @"Rotate left :", @"fn rotl( a, b ) = ", bin(fn rotl( a, b)), @": "; fn rotl( a, b ) print @"Rotate right :", @"fn rotr( a, b ) = ", bin(fn rotr( a, b )),@": "; fn rotr( a, b ) end fn fn bitwise( 255, 2 ) HandleEvents