Bitwise, sar, shl, shr, shift operators



Bitwise, sar, shl, shr, shift operators
Smart pascal source code
var i: Integer; BEGIN { BASIC BITWISE OPERATIONS } i := 0; Writeln(IntToStr(i and 15)); // 0 Writeln(IntToStr(i or 15)); // 15 Writeln(IntToStr(i xor 15)); // 15 i := i or 4; Writeln(IntToStr(i and 15)); // 4 Writeln(IntToStr(i or 15)); // 15 Writeln(IntToStr(i xor 15)); // 11 i := 255; Writeln(IntToStr(i and not 7)); // 248 { BITWISE SAR } WriteLn(1 sar 0); // 1 WriteLn(1 sar 1); // 0 WriteLn(4 sar 1); // 2 WriteLn(-1 sar 0); // -1 WriteLn(-1 sar 1); // -1 WriteLn(-4 sar 1); // -2 i := 123456; WriteLn(i sar 0); // 123456 WriteLn(i sar 2); // 30864 WriteLn(i sar 128); // 0 i := -123456; WriteLn(i sar 0); // -123456 WriteLn(i sar 2); // -30864 WriteLn(i sar 128); // -1 { BITWISE SHIFTS } WriteLn(1 shl 1); // 2 WriteLn(2 shr 1); // 1 i := 1 shl 8; WriteLn(i shr 2); // 64 WriteLn(i shl 2); // 1024 WriteLn(i shr 10); // 0 WriteLn(i shr 0); // 256 WriteLn(i shl 0); // 256 i:=1; WriteLn(8 shr i); // 4 WriteLn(8 shl i); // 16