Hier ist eine Lösung ohne VBA:
=TEXT(SUMPRODUCT(MOD(INT(MID(A1,{1,2,3,4,5,6,7},1))+INT(MID(A2,{1,2,3,4,5,6,7},1)),2),{1000000,100000,10000,1000,100,10,1}),"0000000")
Dieser berechnet das bitweise XOR
SUMPRODUCT
und TEXT
mit in eine Folge von Bits zu drehen.
Hinweis: Diese Formel erfordert, dass beide Eingabewerte die Länge 7 haben (wie in Ihrem eigenen Beispiel) und die Ausgabe hat auch die Länge 7. Um unterschiedliche Eingabedaten zu ermöglichen, implementieren Sie einfach die erforderliche Kürzung und/oder Auffüllung .
Sie können wählen, einige Stenografie Definitionen verwenden:
- definieren
BitPositions
als ={1,2,3,4,5,6,7}
(7-Bit),
- definieren
BitStrings
als ={1000000,100000,10000,1000,100,10,1}
(7-Bit),
BitFormat
definieren als ="0000000"
(7-Bit),
dann können Sie Ihre Formel ein bisschen mehr lesbar/kürzer/Reiniger vorgenommen werden:
=TEXT(SUMPRODUCT(MOD(INT(MID(A1,BitPositions,1))+INT(MID(A2,BitPositions,1)),2),BitStrings),BitFormat)
Dies macht es auch einfacher, mit größeren Ketten von Bits zu arbeiten, zB:
- definieren
BitPositions
als =ROW(INDIRECT("1:32"))
(32-bit),
BitStrings
als =10^(32-ROW(INDIRECT("1:32")))
(32-Bit) zu definieren,
BitFormat
als =REPT("0",32)
(32-Bit definieren)
Möchten Sie implementieren NOT
/OR
/AND
/etc. dann können Sie Ihre Inspiration von diesen formulas for the decimal counterparts bekommen; Hier sind some more in-depth explanations für XOR
mit SUMPRODUCT
, obwohl es auch Dezimal-Eingänge verwendet.
Danke! Für andere Benutzer, um DEC2BIN zu verwenden gehen Sie zu Extras -> Addins -> Analyse toolpak. Um VBA zu gehen, gehen Sie zu Extras -> Makros -> Visual Basic Editor –
Ein bisschen spät am Tag, aber als Referenz, VBA bitweise Operatoren können auch nicht-integrale Typen behandeln (interpretieren Sie das Ergebnis wie Sie) –