Yes, now I see what you are doing.
In fact, (. And .) Are simply alternative ways (but very unusual!) Of writing [ and ] in Delphi.
If PBox is an array, then PBox[a] (or, equivalently, PBox(.a.) ) PBox(.a.) require a be an integer, right? And if SBox1[x] and SBox2[Y] are integers, then their bitwise or . (A bitwise or is an operation that takes two integers and returns a new integer.) Therefore, PBox(.SBox1[X] or SBox2[Y].) Is the (SBox1[X] or SBox2[Y]) th element in PBox array, i.e. an integer. Therefore, it makes sense to calculate the bitwise or between Result and this integer, which is done:
Result := Result or PBox(.SBox1[X] or SBox2[Y].);
Andreas Rejbrand
source share