Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » ungerade zahlen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ]
000
09.10.2003, 18:39 Uhr
~rammellaus
Gast


wie kann ich prüfen ob ne zahl gerade oder ungerade is?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.10.2003, 18:46 Uhr
~RedEagle
Gast


Divideire sie durch 2 umd Prüfe ob ein Rest übrig bleibt
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.10.2003, 18:59 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


nimm gleich den modulooperator


C++:
int zahl=rand()%100;
if(zahl%2) printf("Die Zahl ist ungerade");
else printf("Die Zahl ist gerade");


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
10.10.2003, 13:04 Uhr
Bruder Leif
dances with systems
(Operator)


Oder bitwise and:


C++:
if(i&1) cout << "ungerade";
else cout << "gerade";


--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
10.10.2003, 13:15 Uhr
Pablo
Supertux
(Operator)


Das funktioniert allerding nur mit int und long & Co. Aber ich glaueb nicht dass so eine große zahl hast, wie 2^32, die du in double speichern musst, aber 2^32 it doch ne gerade Zahl.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
10.10.2003, 15:02 Uhr
ao

(Operator)



Zitat:
Bruder Leif postete
Oder bitwise and:


C++:
if(i&1) cout << "ungerade";
else cout << "gerade";




Da wird (das hatten wir neulich schon mal) eine Operation durch eine andere, vermeintlich äquivalente, ersetzt, die nicht die Zahlenwerte der Variablen interpretiert, sondern Annahmen über die interne binäre Darstellung macht.

Ich hab mir bisher nie Gedanken drum gemacht, aber jetzt fällts mir auf: Ist es wirklich vom C-Standard garantiert, dass das immer (d.h. mit allen Compilern und auf allen Prozessoren) geht?

Was ist, wenn ich einen Prozessor habe, der alle Zahlen komplementär darstellt? Auf dieser Maschine wäre die Gerade-Ungerade-Regel genau umgekehrt.

Oder sagt der C-Standard irgendwo, dass das nicht sein darf und dass die C-Runtime-Lib für dieses System das gefälligst wieder umzukehren hat?

Weiß das jemand?

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
10.10.2003, 15:19 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


also wenn ich mich nciht irre müsste bei einer komplementären darstellung doch auch die 1 umgekehrt dargestellt werden. Damit sollte sich das problem dann von alleine lösen
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
10.10.2003, 17:56 Uhr
~rammellaus
Gast


fräge: wie berechne ich potenzen? eigentlich doch 5^2 oda? aber rechnet er + und gibt 7 aus
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
10.10.2003, 18:56 Uhr
~(un)wissender
Gast



Zitat:
ao postete
Was ist, wenn ich einen Prozessor habe, der alle Zahlen komplementär darstellt? Auf dieser Maschine wäre die Gerade-Ungerade-Regel genau umgekehrt.



Ja, ja, ao, da wären wir wieder!
Windalf hat schon recht, wenn er sagt, dass die 1 dann auch komplementär dargestellt wird, ist also völlig legal das zu schreiben.

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
10.10.2003, 19:03 Uhr
~(un)wissender
Gast



Zitat:
~rammellaus postete
fräge: wie berechne ich potenzen? eigentlich doch 5^2 oda? aber rechnet er + und gibt 7 aus


Nee, es kommt noch besser, er rechnet XOR! und nicht +!

2 binär(4 Bit) = 0010
5 binär(4 Bit) = 0101
7 binär(4 Bit) = 0111

Potenzen so:

C++:
#include <cmath>
#include <iostream>

int main()
{
    std::cout << pow(5.0f, 2.0f) << std::endl;
    return 0;
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: