010
27.11.2003, 20:56 Uhr
Hans
Library Walker (Operator)
|
Zitat: |
Pablo Yanez Trujillo postete Aber wenn du zum Beispiel 4.4 und 4.6 speicherst und beide sollen verglichen werden? Dann wird 4.6 und 4.4 akzeptiert, obwohl du die eine oder die andere willst. Probiera mal das!
C++: |
#include <iostream> #include <cmath> using namespace std; int main() { float x = pow(2,32); // 2^32 cout << (int) x << endl; return 0; }
|
Welchen Wert wird denn ausgegeben?
|
Hi Pablo,
das ist ja merkwürdig! Ich habs gerade mal ausprobiert, weil ich neugierig war. Hier das Ergebniss:
Code: |
D: \borland\CommandLine\own>bcc32 pow.cpp Borland C++ 5.5 for Win32 Copyright (c) 1993, 2000 Borland pow.cpp: Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
D: \borland\CommandLine\own>pow 0
D: \borland\CommandLine\own>
|
Wenn ich aber genauer drüber Nachdenke, ist es wieder klar: Da die ints ja 32Bit breit sind, ist die grösste damit darstellbare Zahl ja 2^32-1. Um die 2^32 als int darstellen zu können braucht es ja 33 Bit, d.h. long ints oder ein 64Bit-System...
Hans -- Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung. Dieser Post wurde am 27.11.2003 um 20:57 Uhr von Hans editiert. |