Message117920
Sorry,my patch didn't work again... Because of this
compiler behavior. Is this ANSI standard?
#include <stdio.h>
typedef unsigned __int32 uint32;
static void
print_bits(uint32 n)
{
int i;
for (i = 31; i >= 0; --i)
{
printf("%c", (n & (1 << i)) ? '1' : '0');
}
printf(" : %X\n", n);
}
int main()
{
uint32 n;
n = 1;
print_bits(n << 30);
print_bits(n << 31);
print_bits(n << 32);
print_bits((n << 31) << 1);
}
R:\test\bitshift>a
01000000000000000000000000000000 : 40000000
10000000000000000000000000000000 : 80000000
00000000000000000000000000000001 : 1
00000000000000000000000000000000 : 0
I thought n << 32 should be 0. I hope new patch
is somehow better. |
|
Date |
User |
Action |
Args |
2010-10-03 18:03:00 | ocean-city | set | recipients:
+ ocean-city, theller, ned.deily, stutzbach, r.david.murray, higstar |
2010-10-03 18:03:00 | ocean-city | set | messageid: <1286128980.78.0.636402909366.issue6493@psf.upfronthosting.co.za> |
2010-10-03 18:02:59 | ocean-city | link | issue6493 messages |
2010-10-03 18:02:58 | ocean-city | create | |
|