amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > Tilde Operator "~" [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

30.11.2006, 14:54 Uhr

Honitos
Posts: 200
Nutzer
Ich habe ein C-Beispiel mit einer Zuweisung:

a = ~0

Was bedeutet das ? Ich habe gelesen, der Tilde-Operator negiert quasi alle bits des folgenden Ausdrucks. Ist das dann richtig ?

Sven

[ - Antworten - Zitieren - Direktlink - ]

30.11.2006, 15:15 Uhr

thomas
Posts: 7717
Nutzer
@Honitos:

Jep. ~0 ist das gleiche wie 0xffffffff oder -1.

Und ~0xaaaaaaaa ist 0x55555555.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

30.11.2006, 15:40 Uhr

Honitos
Posts: 200
Nutzer
@thomas:
Danke Dir !

[ - Antworten - Zitieren - Direktlink - ]

01.12.2006, 14:29 Uhr

Solar
Posts: 3680
Nutzer
Zitat:
Original von thomas:

~0 ist das gleiche wie 0xffffffff oder -1.


...auf Maschinen mit Zweierkomplement-Darstellung.

Ja, ich weiß, das sind 99,999% der heute verfügbaren CPUs. Mir war danach, mal wieder eine Korinthe zu... OK, vergessen wir das. I-)

[ - Antworten - Zitieren - Direktlink - ]

02.12.2006, 14:52 Uhr

ZeroG
Posts: 1487
Nutzer
@Solar:
Maschinen ohne Zweierkomplement-Darstellung?
Klingt interressant.
Welche Darstellung verwenden die denn dann?

[ - Antworten - Zitieren - Direktlink - ]

02.12.2006, 17:33 Uhr

Ralf27
Posts: 2779
Nutzer
Zitat:
Original von ZeroG:
@Solar:
Maschinen ohne Zweierkomplement-Darstellung?
Klingt interressant.
Welche Darstellung verwenden die denn dann?


Ach, die einzige mir bekanntenn Maschinen waren die ersten Computer überhaupt. Die haben es damals mal mit dem Dezimalsystem versucht, bis zu doch zum Binärsystem umgestiegen sind. Frag mich jetzt aber nicht welche Maschinen das waren... Z3?

Bzw. welche Rechner würden denn dann heute ohne Binärsystem laufen? Vermutlich die Experimentalrechner wie z.b. "Lichtcomputer" oder "Biorechner" (Leuts mir fallen da gerade nicht die richtigen Begriffe ein, also bitte richtige Begriffe einsetzen. :D )
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

03.12.2006, 14:20 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von Ralf27:
Ach, die einzige mir bekanntenn Maschinen waren die ersten Computer überhaupt. Die haben es damals mal mit dem Dezimalsystem versucht, bis zu doch zum Binärsystem umgestiegen sind. Frag mich jetzt aber nicht welche Maschinen das waren... Z3?

Verwechsel Zweierkomplement nicht mit Binärdarstellung. Die Zweikomplementdarstellung ist die Darstellung der negativen Zahlen, diejenige, die z.B. dafür sorgt, dass die größte positive Integer-Zahl plus 1 einen Überlauf auf die kleinste negative Zahl verursacht. Ich bezweifle sowieso, dass es für diese Rechner schon nen C-compiler gab.

Aber ~0 == -1 gilt sowieso nur für signed Variablen in C. Schon hier funktioniert es nicht:
C code:
unsigned short a=~0;
signed int b=a;


mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

03.12.2006, 17:38 Uhr

Ralf27
Posts: 2779
Nutzer
Ups, sorry, da muß ich wohl wirklich einiges durcheinandergeworfen haben.
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

04.12.2006, 08:19 Uhr

Solar
Posts: 3680
Nutzer
Neben dem Zweierkomplement gibt's da z.B. das Einerkomplement, was z.B. die Konvertierung zwischen positiven und negativen Zahlen vereinfacht, aber zu einer vorzeichenbehafteten Null führt.

Mir ist schon klar, das ich hier von absoluten Exoten rede. Quasi Computerarchäologie. Ich bin nur mit der Zeit immer vorsichtiger geworden, was solche "natürlichen Annahmen" angeht, weil ich schon mit viel einfacheren Sachen auf die Nase gefallen bin. (Neulich hatte ich da einen Compiler/Linker, der bei externen Symbolen tatsächlich nicht case sensitive war... uiuiui... I-) )

[ - Antworten - Zitieren - Direktlink - ]

04.12.2006, 11:14 Uhr

Holger
Posts: 8116
Nutzer
@Solar:
Ganz so exotisch ist es ja auch wieder nicht, schließlich benutzen die FPUs (wahrscheinlich auch wieder nicht alle ;) ) das Einerkomplement.

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

04.12.2006, 13:22 Uhr

Beeblebrox
Posts: 723
Nutzer
@Solar:
Computerarchäologie :-)))
--
>>> bEeBlEbRoX <<<
http://www.endlosstudent.de

[ - Antworten - Zitieren - Direktlink - ]

04.12.2006, 14:25 Uhr

Solar
Posts: 3680
Nutzer
Zitat:
Original von Beeblebrox:
@Solar:
Computerarchäologie :-)))


Du glaubst gar nicht, mit was für einem Mist man sich herumschlagen muß, wenn man eine wirklich generische C-Bibliothek schreiben will... EBCDIC-Zeichensätze, "wobbling precision"-FPUs... da sind Sachen wie Einer- vs. Zweierkomplement noch "einfach" gegen. ;-)

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > Tilde Operator "~" [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.