// *** before: ***
// a number could be written in decimal or in hex. A bit mask had to be
// translated into hex in your head, or built by shifting
const
FlagRead = $01; // 0000 0001
FlagWrite = $02; // 0000 0010
FlagExec = $04; // 0000 0100
Mask = $0A; // which bits are these, exactly?
var
Bits: Byte;
begin
Bits := (1 shl 3) or (1 shl 1);
end;
// *** in version 11: ***
const
FlagRead = %00000001;
FlagWrite = %00000010;
FlagExec = %00000100;
Mask = %00001010; // the bits are the literal
var
Bits: Byte;
begin
Bits := %00001010;
Writeln(Bits); // 10 - the value is an ordinary number
// the prefix is the percent sign, the same one other Pascal compilers
// have used for years
end;