lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 18/01/10 14:40, Roberto Ierusalimschy wrote:
[...]
> Just a remind: at least we would be in good company, as ANSI C does not
> offer this operation too :)
> 
>   ISO/IEC 9899:1999 (E)
>   6.5.7
>   The result of E1 >> E2 is E1 right-shifted E2 bit positions.  If E1
>   has an unsigned type or if E1 has a signed type and a nonnegative
>   value, the value of the result is the integral part of the quotient of
>   E1 / 2E2.  If E1 has a signed type and a negative value, the resulting
>   value is implementation-defined.

Luckily, one of C's many dirty little secrets is that
'implementation-defined behaviour' involves sign extension on pretty
much every compiler!

This is another example of why I think C's shifting behaviour is so mad.
Luckily, we don't have to repeat C's mistakes.

- -- 
┌─── dg@cowlark.com ───── http://www.cowlark.com ─────
│
│ "Money is a sign of poverty." --- Iain Banks
│
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAktUdNwACgkQf9E0noFvlzhx7ACgsul9xJgf5vgoKQk92sEI8L+5
xa0AoMpYJ0LQeXMeEd891smJM1bOmVr1
=XJRC
-----END PGP SIGNATURE-----