Schrift
[thread]8545[/thread]

Lesbarkeit von Code (Seite 2)

Leser: 1


<< |< 1 2 3 4 >| >> 36 Einträge, 4 Seiten
Dubu
 2006-12-04 20:40
#72166 #72166
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Ich bezweifle, dass es dabei irgendwo Portabilitätsprobleme gibt, denn solche Konstruktionen finden sich recht häufig in C-Code.
docsnyder
 2006-12-04 23:26
#72167 #72167
User since
2005-09-08
300 Artikel
BenutzerIn
[Homepage] [default_avatar]
@Dubu

Na ja, daß es solche Konstruktionen häufig in C-Code gibt (habe selbst 12 Jahre intensiv in C programmiert und da macht man schon z.T. sehr kriminelle Sachen, die zum grossen Teil eben für eine bestimmte Plattform geschrieben sind) ist noch kein Indiz dafür, daß es nicht auch Integer-Repräsentationen gibt, bei denen man eben nicht voraussetzen kann, daß bei ungeraden Zahlen immer das niederwertigste Bit gesetzt ist.

Zumindest sollte man hier Portabilitätsprobleme zumindest für möglich halten.

Wie sehen das die anderen Experten? (da sollten alle Alarmglocken bimmeln!)

Gruß, Doc
Dubu
 2006-12-05 01:15
#72168 #72168
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Ich wäre zumindest dann vorsichtig, wenn auch negative Zahlen getestet werden, denn falls eine Einerkomplement-Darstellung benutzt wird, haben negative gerade Zahlen das unterste Bit gesetzt.
bloonix
 2006-12-05 08:57
#72169 #72169
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=docsnyder,04.12.2006, 22:26]ist noch kein Indiz dafür, daß es nicht auch Integer-Repräsentationen gibt, bei denen man eben nicht voraussetzen kann, daß bei ungeraden Zahlen immer das niederwertigste Bit gesetzt ist.[/quote]
Hmmm...

Wo soll das denn der Fall sein? Wenn das niedrigste Bit nicht gesetzt ist,
dann ist es keine ungerade Zahl.
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
docsnyder
 2006-12-05 09:19
#72170 #72170
User since
2005-09-08
300 Artikel
BenutzerIn
[Homepage] [default_avatar]
@opi

Warum bist Du so sicher? Würdest Du Dich blind drauf verlassen?

Es gibt z.B. Integer-Räpresentationen, bei denen es eine +0 und eine -0 gibt (0...0 bzw. 1...0). Dann gibt es Integer-Representationen, welche die doppelte 0 vermeiden und damit noch einen weiteren negativen Wert rausschlagen. Da ist dann 1...0 nicht -0, sondern -1. Und damit würde der Test "niederwertigstes Bit gleich ungerade" eben nicht funktionieren. Und die Frage ist daher berechtigt, ob es vielleicht auch andere Integer-Repräsentationen gibt, bei denen der Test so nicht durchgeführt werden kann. So ganz pauschal und pan-galaktisch würde ich das nicht verneinen wollen.

Gruß, Doc\n\n

<!--EDIT|docsnyder|1165306855-->
topeg
 2006-12-05 10:20
#72171 #72171
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Das kann tatsächlich zu einem Problem werden. Man denke nur an die Unterschide der Registeraufteilung für Upperbite und Lowerbite von PPC (oder 68k) und x86. Da kann man sich sicher Prozessoren vorstellen, die ihre Register noch anderes aufteilen.
docsnyder
 2006-12-05 10:25
#72172 #72172
User since
2005-09-08
300 Artikel
BenutzerIn
[Homepage] [default_avatar]
@topeg

Mit Registeraufteilungen dürfte das eigentlich nichts zu tun haben, denn wie eine Zahl in Registern abgelegt wird, sollte eigentlich auf der Ebene einer Programmiersprache transparent sein. Wichtig ist aber die Integer-Räpresentation (siehe oben).

Gruß, Doc
betterworld
 2006-12-05 14:14
#72173 #72173
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
[quote=Dubu,05.12.2006, 00:15]Ich wäre zumindest dann vorsichtig, wenn auch negative Zahlen getestet werden, denn falls eine Einerkomplement-Darstellung benutzt wird, haben negative gerade Zahlen das unterste Bit gesetzt.[/quote]
Im Falle von @_ & 1 müssen wir uns da wohl weniger Gedanken machen :-)
bloonix
 2006-12-05 14:16
#72174 #72174
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=docsnyder,05.12.2006, 08:19]Es gibt z.B. Integer-Räpresentationen, bei denen es eine +0 und eine -0 gibt (0...0 bzw. 1...0).[/quote]
Mit Vermutungen kann ich nichts anfangen. Weiß hier jemand mehr drüber? Das mein Beispiel

@_ & 1

nicht funktioniert?
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
docsnyder
 2006-12-05 16:54
#72175 #72175
User since
2005-09-08
300 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=opi,05.Dec..2006, 13:16][quote=docsnyder,05.12.2006, 08:19]Es gibt z.B. Integer-Räpresentationen, bei denen es eine +0 und eine -0 gibt (0...0 bzw. 1...0).[/quote]
Mit Vermutungen kann ich nichts anfangen. Weiß hier jemand mehr drüber? Das mein Beispiel

@_ & 1

nicht funktioniert?[/quote]
@opi

Na ja, daß Dein Code auf jeder Hardware funktioniert ist doch genauso eine Vermutung! ... aber damit kannst Du ja nichts anfangen ;o)

Gruß, Doc\n\n

<!--EDIT|docsnyder|1165330701-->
<< |< 1 2 3 4 >| >> 36 Einträge, 4 Seiten



View all threads created 2006-12-01 18:05.