wie kann ich das Einerkomplement bei Excel bilden, Beispiel 0110 wäre ja dann 1001. Aber wie bekomme ich das mit Excel hin. Die WENN Funktion. Aber wie nur?

...komplette Frage anzeigen

3 Antworten

Mit der Funktion wechseln geht es in drei Schritten. Die verschiedenen Schritte (zumindest in meiner Version notwendig - vielleicht gibt es noch eine bessere Idee von anderen), weil man einen Zwischenschritt benötigt, um nach der Ersetzen des einen Wertes, diesen von den bereits vorhandenen unterscheiden kann.

Wenn der Anfangswert in A1 steht, schreibst Du in A2, A3 bzw. A4:

=wechseln(A1;1;2) -> die 1er werden hilfsweise durch 2 ersetzt
=wechseln(A2;0;1)
=wechseln(A3;2;0)


=WECHSELN(WECHSELN(WECHSELN(A1;"0";"#");"1";"0");"#";"1")


Ninombre 08.11.2015, 19:57

Jetzt ist Meister - Lehrling wieder bewiesen worden ;-)

1
Iamiam 09.11.2015, 23:03
@Ninombre

@Ninombre: Wenn ich deine bisherigen Antworten sehe: bleib dran, Du hast das Zeug dazu! Dauern wirds allerdings schon noch ein Weilchen! (ich hab mich mit >60 [Wiedereinstieg] nochmal deutlich verbessert und lerne immer noch dazu, dank der qualifizierten AW der Besten hier!)

1
=DEZINBIN(255-BININDEZ(A1))
Wer ist hier der Meister? ;-) - (Informatik, Excel, einerkomplement)
Iamiam 09.11.2015, 19:45

ein mathematischer Ansatz: DH!

aber nicht ganz korrekt (die vorderen Stellen sollen ja nicht sein).

So stimmts:

=RECHTS(DEZINBIN(511-BININDEZ(A1));LÄNGE(A1))

in xl nur max. 9 Digits, in LibreOffice bis ~ 2^47 weiß nicht mehr ganz genau, also 47± Digits

2
Iamiam 10.11.2015, 23:51
@Iamiam

noch eine Präzisierung: Die Fkt DezinBin(Zahl) gibt es in LO zwar, sie leistet aber nicht mehr als das Pendant in xl.

Die bessere Fkt heißt BASIS(Zahl;Basis;min.Länge) und hat keine Entsprechung in xl2010 (wird beim Speichern unter xlsx nicht übersetzt). Sie geht bei Basis 2 (andere nicht getestet) bis Zahl=2^47-1

1

Was möchtest Du wissen?