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