Excel Tabelle zum üben von Binär/Hexadezimal Umrechnung

Um das umrechnen im Kopf zu üben von Binär zu Hexadezimal habe ich hier eine Excel-Tabelle erstellt, bzw. die Formeln hier notiert.

Viel Spaß.

Bitte zuerst die Berechnung von ‚automatisch‘ auf ‚manuell‘ umstellen!
(in Excel 2000: Extras/Optionen/Berechnung)
Für neue Zufallszahlen Taste ‚F9‘ drücken und dann Lösungsvorschlag in
Spalte ‚Lösung‘ eintragen.

 

0x Lösung   Ergebnis Prüfung1 Prüfung2
A B C D E F
1 1011 B 0 B
2 0101 5 5
3 1101 D 0 D
4 0101 5 5
5 0110 6 6

 

Feld A1
=WERT(VERKETTEN((WENN(ZUFALLSZAHL()>0,5;1;0));(WENN(ZUFALLSZAHL()>0,5;1;0));(WENN(ZUFALLSZAHL()>0,5;1;0));(WENN(ZUFALLSZAHL()>0,5;1;0))))

Feld B1
zur Eingabe eines Lösungsvorschlages

Feld C1
leer

Feld D1
=WENN(F1<>““;F1;(WENN(E1<>““;E1;““)))

Feld E1
=WENN(A1=1;1;(WENN(A1=10;2;(WENN(A1=11;3;(WENN(A1=100;4;(WENN(A1=101;5;(WENN(A1=110;6;(WENN(A1=111;7;(WENN(A1=1000;8;0)))))))))))))))

Feld F1
=WENN(A1=1001;9;(WENN(A1=1010;“A“;(WENN(A1=1011;“B“;(WENN(A1=1100;“C“;(WENN(A1=1101;“D“;(WENN(A1=1110;“E“;(WENN(A1=1111;“F“;““)))))))))))))

Die Beschränkung in Excel 2000 sind 8 Schachtelungen. Daher muss hier die Prüfung aufgeteilt werden auf zwei Felder (E1 und F1). D1 prüft dann, wo es eine positive Prüfung ergab und gibt das Ergebnis aus.

Quick’n’Dirty PL/SQL Version

Mit PL/SQL kann man einen anonymen Block schreiben, der 4 Bits und den Hexadezimalen Wert dazu ausgibt:

DECLARE
   n_anzahl NUMBER := 100;
   n_zufall NUMBER;
   s_binary VARCHAR2 ( 8 ) := '';
BEGIN
   FOR i IN 1 .. n_anzahl LOOP
      FOR j IN 1 .. 4 LOOP
         SELECT CAST ( DBMS_RANDOM.VALUE ( 0, 1 ) AS NUMBER ( 1 ) ) 
           INTO n_zufall 
           FROM DUAL;

         s_binary := s_binary || TO_CHAR ( n_zufall );
      END LOOP;

      CASE
         WHEN s_binary = '0000' THEN
            s_binary := s_binary || ' / 0';
         WHEN s_binary = '0001' THEN
            s_binary := s_binary || ' / 1';
         WHEN s_binary = '0010' THEN
            s_binary := s_binary || ' / 2';
         WHEN s_binary = '0011' THEN
            s_binary := s_binary || ' / 3';
         WHEN s_binary = '0100' THEN
            s_binary := s_binary || ' / 4';
         WHEN s_binary = '0101' THEN
            s_binary := s_binary || ' / 5';
         WHEN s_binary = '0110' THEN
            s_binary := s_binary || ' / 6';
         WHEN s_binary = '0111' THEN
            s_binary := s_binary || ' / 7';
         WHEN s_binary = '1000' THEN
            s_binary := s_binary || ' / 8';
         WHEN s_binary = '1001' THEN
            s_binary := s_binary || ' / 9';
         WHEN s_binary = '1010' THEN
            s_binary := s_binary || ' / A';
         WHEN s_binary = '1011' THEN
            s_binary := s_binary || ' / B';
         WHEN s_binary = '1100' THEN
            s_binary := s_binary || ' / C';
         WHEN s_binary = '1101' THEN
            s_binary := s_binary || ' / D';
         WHEN s_binary = '1110' THEN
            s_binary := s_binary || ' / E';
         WHEN s_binary = '1111' THEN
            s_binary := s_binary || ' / F';
         ELSE
            DBMS_OUTPUT.put_line ( '??' );
      END CASE;

      DBMS_OUTPUT.put_line ( s_binary );
      s_binary := '';
   END LOOP;
END;
Print Friendly, PDF & Email