Willliam V a �crit dans le message <7bg0pc$5a4$1@ffx2nh3.news.uu.net>... >500000000*7 is a negative quantity. C++ prints out >what you ask it to do. >try unsigned long l = 500000000*7; >cout << l; >or even >cout << ((unsigned long )500000000)*7); >If Linux 'd make the unsigned long to be 64 bit, you Ada would >have compiled fine. So the Ada compiler you are using is >relying very heavily on the underlying C machinery. Don't be >too fast to blame C or C++ Certainly not. What does it means anyway that "your Ada compiler is relying on the underlying C machinery" ???? It is just that the Ada compiler rely on the underlying architecture, how could it be otherwise anyway ! The 32 bits or 64 bits attributes are coming from the architecture not from the C compiler. So the only thing we know now is that a machine word (in this example) is 32 bits. And now again, Ada pay attention to that but C/C++ does not. Pascal.