Xref: utzoo comp.lang.c:31732 comp.std.c:3573 Path: utzoo!utgpu!watserv1!watmath!att!tut.cis.ohio-state.edu!zaphod.mps.ohio-state.edu!uakari.primate.wisc.edu!aplcen!uunet!mcsun!hp4nl!charon!aeb From: aeb@cwi.nl (Andries Brouwer) Newsgroups: comp.lang.c,comp.std.c Subject: shift left arithmetic Message-ID: <2098@charon.cwi.nl> Date: 10 Sep 90 13:15:26 GMT Sender: news@cwi.nl Lines: 33 While debugging an Australian computer algebra package I stumbled over the following: 1<<32 produced 0, but int a; a=1; a<<32 produced 1. (Of course the word length of my machine is 32 bits.) Now I can understand how these values come about, and each is perfectly acceptable, but shouldnt static evaluation of expressions produce the same answers as dynamic evaluation? Is my compiler broken? [In the application the programmer wrote code depending on #if 1<