Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

BININDEZ
#21
Ich gehe davon aus dass Du Grundkenntnisse haben solltest? Oder warum dann der Prüfungsbogen? Mit der Funktion BININHEX() kannst Du das doch selbst umwandeln wenn du es im Kopf nicht schaffst, und da ergibt 1100 nunmal C. Hexzahlen bestehen aus 16 Zeichen von 0-F, C repräsentiert die Dezimalzahl 12. Die 1100 ergibt 1*2^3 + 1* 2^2 +0*2^1 +0*2^0 = 8+4+0+0 und das ist auch 12. C = 12*16^0 = 12. Die (Hex)Zahlen werden so wie berechnet aneinandergereiht wie oben gezeigt, von links nach rechts. Das funktioniert deshalb weil 4Bit genau einer Hexziffer entsprechen.

0111-1100-0011                        0001-0001-0001 = 1*2^8 + 1*2^4 + 1*2^0      = 256+16+1 = 273
   7       C       3                               1       1       1   = 1*16^2 + 1*16^1 + 1*16^0 = 256+16+1 = 273

Natürlich kann Dein Unverständnis meiner Erklärungen auch daran liegen dass ich kein guter Erklärbär bin aber mit den ebenfalls gezeigten Beispielen und den genannten Grundkenntnissen hätte es doch eigentlich klappen sollen Smile
Grüße,
Winny
Antworten Top
#22
Hallöchen,

mal noch was zum negativen Vorzeichen. In der Aufgabenstellung wurde nichts vergessen. In der Wiki ist die Vorgehensweise ja ganz gut beschrieben, wenn man weiß, dass es um eine negative Zahl geht - das steht ja in der Aufgabe. Etwas steht allerdings nicht im verlinkten Beitrag. Da der PC nur mit 0 und 1 umzugehen weiß und kein 3. "-" - bit kennt, gibt es neben den Werteregistern noch ein Statusregister, in welchem u.a. das Vorzeichen festgelegt wird. Das hat aber auch mehr als zwei Stellen.

Für die größeren Zahlen gibt es bei Excelformeln eine entsprechende. Den dort beschriebenen Grenzwert von 32767 kann man durch Setzen eines Hochkommas vor die Binärzahl umgehen. Allerdings weiß die Formel nichts mit den beiden weiter oben genutzten Vorzeichen - Einsen anzufangen, die rechnet einfach weiter. Da muss man Excel auch mitteilen, dass es sich um eine negative Zahl handeln soll.

Hier mal der Ansatz. Die Spalte mit dem Invertieren ist nur mal als zusätzliches Beispiel und für die Lösung mit Hilfe der "Excelformeln" nicht nötig. Als Flag für das negative Vorzeichen hab ich in Spalte B eine 1 gesetzt - Eselbrücke - Vorzeichen hab ich in dem Fall eins Wink Im Gegensatz zu einem "-" lässt sich mit der "1" gleich direkt in der Formel in Spalte C rechnen.

Arbeitsblatt mit dem Namen 'Tabelle1'
 ABCD
1BinärVorzeichenErgebnisInvertieren
211111100 252 
3111111001-400000011

ZelleFormel
C2=SUMMENPRODUKT(LINKS(RECHTS("0"&A2;SPALTE(A:Z)))*2^(-1+SPALTE(A:Z)))-(SUMMENPRODUKT(LINKS(RECHTS("0"&WECHSELN(A2;0;1);SPALTE(A:Z)))*2^(-1+SPALTE(A:Z)))+1)*B2
C3=SUMMENPRODUKT(LINKS(RECHTS("0"&A3;SPALTE(A:Z)))*2^(-1+SPALTE(A:Z)))-(SUMMENPRODUKT(LINKS(RECHTS("0"&WECHSELN(A3;0;1);SPALTE(A:Z)))*2^(-1+SPALTE(A:Z)))+1)*B3
D3=WECHSELN(WECHSELN(WECHSELN(A3;1;"#");0;1);"#";0)
Diese Tabelle wurde mit Tab2Html (v2.5.0) erstellt. ©Gerd alias Bamberg
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#23
In der Aufgabenstellung war tatsächlich alles Notwendige angegeben, Leute,
und André hat auch auf Wikipedia verwiesen, Stichwort Zweierkomplement. Excels BININDEZ rechnet mit Vorzeichenerweiterung auf 10 Stellen, d.h., bei einer negativen Zahl muss die führende 1 in die 9. und 10.Stelle (von rechts) übernommen werden, sonst kommt es zu einem falschen Ergebnis. Demgegenüber geht VBA von 8 signifikanten Stellen aus, wobei man - wie auch bei BININDEZ - Vornullen weglassen kann, die deshalb automatisch ergänzt werden, um die Stellenzahl 8 bzw 10 zu erreichen. Damit ist dann auch gleich die Grenze erreicht, für die die jeweiligen Funktionen ausgelegt sind.
Bei Bedarf müssen größere Zahlen mit adäquaten Verfahren, wie bereits vorgeschlagen, behandelt werden.
Gruß, Castor
Antworten Top
#24
Hallo,

hier gibt es entsprechende UDF´s:

Binärumwandlungen
Hexadezimalumwandlungen

Gruß Uwe
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste