On Thu, 13 Apr 2017 11:28:20 +0200 Andrea Mauri <andrea.mauri...@gmail.com> wrote:
>[...] > procedure TBits.Setall; > var > loop : longint; > begin > for loop := 0 to FSize - 1 do > FBits^[loop] := 1; Should be FBits^[loop] := not cardinal(0); > end; Btw, it seems TBits misses an AssignBits(b: TBits). And maybe an AssignNotBits(b: TBits) > 2. a Not operator, something like a.NotBits; with no arguments that > perform the not operation on the TBIts instance (a[i]:= not a[i]) or > something that performs a not operation on the passed TBits, i.e. > a.Not(b) that fills a in this way: a[i]:= not b[i]; > > procedure TBits.Notbits; > var > n : longint; > jj : cardinal; > loop : longint; > begin > for loop := 0 to FSize - 1 do > FBits^[loop] := not FBits^[loop]; > end; > > or > > procedure TBits.Not(bitset : TBits); "Not" is a preserved word. > var > n : longint; > loop : longint; > begin > if FSize < bitset.getFSize then > n := FSize - 1 > else > n := bitset.getFSize - 1; > > for loop := 0 to n do > FBits^[loop] := not bitset.FBits^[loop]; > end; For consistency with the other SomethingBits methods you must handle all bits, not just the start. Mattias _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel