Just to menion:
I am NOT trying to get anything changed. It works fine for me as it is.
I would however like to widen/correct my understanding of the matter
On 14/01/2013 16:03, Martin wrote:
not sure if I follow. If "or" performs on a "set of bits" (rather than
a number), and a set (not being a number) is neither signed or
unsigned, then before the "OR" both operands (independent of being
signed or not) will be cast to a set. The result is a set. The set can
be converted to either signed or unsigned. The set has no range checking.
result := bit_set32(a) or bit_set32(b)
If result has also 32 (or more) bits, then no range check error can
occur. In the set, the high-bit has no meaning. It is neither part of
the (unsigned positive) numer, nor is it sign indicator. This meaning
is only applied by casting it to a numeric type.
Same as
var i: set of (b0, b1, b2 .... b31);
signed := integer(i);
unsigned := cardinal(i);
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel