Am 20.07.2013 10:13, schrieb Michael Höhne:
> 
>> =RECHTS(DEZINBIN(-BININDEZ(A1)-1);LÄNGE(A1))
>> 
>> Das wandelt die Binärdarstellung in A1 in einen Dezimalwert um. Dieser
>> wird dann negiert, und noch 1 davon abgezogen[1]. Das Ergebnis wird
>> nun wieder in eine Binärdarstellung umgewandelt, und schließlich auf
>> die passende Länge gekürzt.
>> 
>> Aber ob das wirklich eleganter ist, wage ich zu bezweifeln.
> 
> Ich hätte noch eine Lösung über den Dezmalwert (passende
> 2er-Potenz-1-Zahl) anzubieten, die ist aber auch nicht eleganter...
> 
> Was mich etwas wundert: Es gibt eine BITOR()- und eine BITAND()-
> Funktion 

Stimmt; an die hab ich gar nicht gedacht.

> aber das "BITNOT()" muss man sich über das Komplement selber
> basteln...

Ein 'BITNOT(Zahl)' ist nix anderes als 'BITXOR(Zahl;0)' (0 xor 0 = 1,
und 1 xor 0 = 0).

Das bringt aber trotzdem nicht wirklich viel, wenn der Wert als String
vorliegt (was ziemlich wahrscheinlich ist, da es meines Wissens keine
Möglichkeit gibt, eine Zahl /direkt/ in Hexadezimal- oder Binärform
darzustellen). Einen String muss man tortzdem zuerst in eine Zahl und
nachher wieder zurück verwandeln:

| =RECHTS(DEZINBIN(BITXOR(BININDEZ(A1);0));LÄNGE(A1))

Wahrscheinlich könnte man auch was mit RegEx-Ausdrücken machen, aber 
ich fürchte, daß das höchstens /noch/ uneleganter sein wird.

Wolfgang
-- 


-- 
Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org
Probleme? 
http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert

Antwort per Email an