[fpc-devel] Do bitwise operation (1 or 2) acre about the sign ? (Giving sign related hints on compilation)

Martin lazarus at mfriebe.de
Mon Jan 14 17:05:47 CET 2013


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 at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20130114/26eb6a09/attachment.html>


More information about the fpc-devel mailing list