Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » woher weiß ich das eine zahl durch 2 teilbar ist?

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 <
000
29.06.2005, 10:51 Uhr
chraikle2001



mein chef fragt mich gerade woher ich weiß das eine zahl durch 2 teilbar bzw gerade oder ungerade ist.

eine zahl 3 / 2 = 1,5
aber woher weiß ich dann ob ne zahl grade oder ungerade beim programmieren! wie sag ich dem programm das?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
29.06.2005, 10:56 Uhr
ao

(Operator)


Wenns eine Ganzzahl ist:

C++:
bool bEven = (n % 2 == 0); // Rest 0 bei Division durch 2.

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
29.06.2005, 13:07 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


oder

C++:
bool bEven = !(n&1);


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
29.06.2005, 14:20 Uhr
ao

(Operator)



Zitat von Windalf:
oder

C++:
bool bEven = !(n&1);



Dazu würde mich mal interessieren, ob es eigentlich Vorschrift ist, dass 1 binär so dargestellt wird:

Code:
0000 0000 0000 0000 0000 0000 0000 0001  (hier die 32-Bit-Fassung)

und dass negative Zahlen im 2er-Komplement dargestellt werden.

Wäre nämlich auch 1er-Komplement erlaubt, dann sähe z.B. -1 so aus:

Code:
1111 1111 1111 1111 1111 1111 1111 1110

und bei obigem Test käme bEven == true heraus.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
29.06.2005, 14:49 Uhr
virtual
Sexiest Bit alive
(Operator)



Zitat von ao:

Zitat:
oder

C++:
bool bEven = !(n&1);



Dazu würde mich mal interessieren, ob es eigentlich Vorschrift ist, dass 1 binär so dargestellt wird:


Hallo ao,

nein: gemäß C99 Standard (Abschnitt 6.2.6.2, Satz 2) sind drei Repräsentationen für vorzeichenbehaftete Ganzzahlen erlaubt:
1. 1er Komplement
2. 2er Komplement
3. 3er Komplement. (Nein Natürlich nicht: sondern einfach sign+Magnitude, dh ein Vorzeichenbit+Einige Bits die den Absolutbetrag repräsentieren).
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 29.06.2005 um 18:00 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
29.06.2005, 14:54 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Ums für den Fragenden zusammenzufassen der das bestimmt nicht verstanden hat. Nimm die Version von ao und vergiss meine auch wenn sie in 99% der Fälle funktioniert. Vermutlich wird das von ao wenns dem compiler möglich ist dann eh in Richtung meiner Variante optimiert und wenns sich nicht optimieren lässt funzt es wenigstens...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
29.06.2005, 15:25 Uhr
Tommix



@Windalf: Der Fragende will's doch gar nicht verstehen
Zitat:
mein chef fragt mich gerade woher ich weiß...
.
So gesehen ist ein Verweis auf Abschnitt 6.2.6.2 usw. perfekt und ganz besonders Punkt 3 in virtuals Liste.

-Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
01.07.2005, 14:37 Uhr
0xdeadbeef
Gott
(Operator)


Ganz generell würde ich Operationen zweckgebunden einsetzen. Bit-Operationen dann, wenn du auf bestimmte Bits zugreifen bzw. damit rumjonglieren willst, und mathematische Operationen, wenn dich mathematische Eigenschaften (wie zum Beispiel gerade/ungerade) interessieren. Bit-Operationen zu benutzen, um zu sehen, ob eine Zahl gerade, ungerade, positiv, negativ oder so weiter ist, das finde ich eigentlich ziemlich unschön.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ 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: