Das grosse Archiv mit 640
VBA-freien Formellösungen und Tips
 
   
 
 ÜBER UNS   NEWS   FORMELN   TIPPS   KONTAKT   FORUM   LINKS 
   
Übersicht   Zauberbuch   Rätselbuch   Sparbuch   Bücher-Downloads / Errata  
 
Zahlensysteme (16) ->

UND bzw. ODER Verknüpfung zweier Binärzahlen (314)

Autor: Andreas ???
 
 
Aufgabe
Zwei Binärzahlen sollen binär verknüpft werden.

       A               B               C       
1 1010101010  682   
2 11001100  204   
3      
4 10001000  136  UND  
5 1011101110  750  ODER 

Lösung
Die beiden Binärzahlen stehen in A1 und A2.

in A4 steht das Ergebnis der UND-Verknüpfung:
{=SUMME(WENN(LINKS(RECHTS(TEXT(A1;WIEDERHOLEN("0";20));ZEILE(1:10));1)*LINKS(RECHTS(TEXT(A2;WIEDERHOLEN("0";20));ZEILE(1:10));1);1)*10^((ZEILE(1:10)-1)))}
Es geht aber auch viel einfacher ohne Array:
=1*WECHSELN(WECHSELN(A1+A2;1;0);2;1)

in A5 steht das Ergebnis der ODER-Verknüpfung:
{=SUMME(WENN(LINKS(RECHTS(TEXT(A1;WIEDERHOLEN("0";20));ZEILE(1:10));1)+LINKS(RECHTS(TEXT(A2;WIEDERHOLEN("0";20));ZEILE(1:10));1);1)*10^((ZEILE(1:10)-1)))}
ganz einfach:
=1*WECHSELN(A1+A2;2;1)

Die Ergebnisse kann man wie folgt überprüfen:
Schreibe in B1;B2;B4;B5 die entsprechenden Dezimalzahlen.

starte das VBA-Makro
Sub test()
MsgBox 682 And 204
MsgBox 682 Or 204
End Sub

und Du erhälst die Meldung 136 und 750#



Erläuterung
Ergänzung von Ernst-Albrecht Borgener:

Mit der Formel
=1*WECHSELN(A1+A2;2;0)
kann man auch den logischen Vergleich XOR (entweder oder) durchführen.

Ergänzung vom 02.04.2006:
Dezimalzahlen binär vergleichen:

UND:
{=SUMME(WENN(MMULT(KÜRZEN(REST({682.204}/2^(30-ZEILE(1:30));2));{1;1})=2;1)*2^(30-ZEILE(1:30)))}=136

ODER:
{=SUMME(WENN(MMULT(KÜRZEN(REST({682.204}/2^(30-ZEILE(1:30));2));{1;1})>0;1)*2^(30-ZEILE(1:30)))}=750
 
    zurück


 
powered by telltarget