1. #1
    Avatar von Snees
    Registriert seit
    18.11.2011
    Beiträge
    1.001
    Thanked 590 Times in 319 Posts

    Standard [Artikel] IT-Zahlensysteme

    Da wir dieses Thema im Moment in der Schule behandeln dachte ich mir schreibe ich mal einen Thread dazu.

    In diesem Artikel geht es um das Dezimal-, Binär und Hexadezimalsystem.

    Zuerst geht es um das Dezimalsystem, das jedem von euch bekannt ist.

    Dezimalsystem (Basis 10; Ziffern 0,1,2,3,4,5,6,7,8,9):



    Dieses System ist ganz einfach, die 2 ist die 100er-Stelle, die 3 die 10er-Stelle und die 7 die 1er-Stelle. Viel mehr muss man dazu nicht sagen.

    Binärsystem (Basis 2; Ziffern 0,1):



    Hier addiert man einfach die Stellen an denen eine 1 steht und erhält eine Dezimalzahl. Also wie im Beispiel:
    128+32+8+4+2 = 174

    Hexadezimalsystem (Basis 16; Ziffern: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)



    Das B steht hier für die 11, die Rechnung lautet also:
    = 2 x 16^1 + 11 x 16^0
    = 2 x 16 + 11 x 1
    = 32 + 11
    = 43
    Bin für Fragen, Ergänzungen und Verbesserungen offen.
    LG

    /e: Binär -> Dezimal umrechnen mit PHP, muss eine 8-stellige Zahl sein, nicht dynamisch.
    Spoiler:

    PHP-Code:
    <?php
    $input 
    $_GET['in'];
    $zahlen preg_split('//'$input, -1PREG_SPLIT_NO_EMPTY);
    $ausgabe 0;
    if(
    strlen($input)!=8)
        {
            echo 
    '8-Bit!';
        }
    else
        {
            for (
    $i $i $i++)
                {
                    if(
    $i == 1)
                        {
                            if(
    $zahlen[0] == 1)
                                {
                                    
    $ausgabe+=128;
                                }
                        }
                    elseif(
    $i == 2)
                        {
                            if(
    $zahlen[1] == 1)
                                {
                                    
    $ausgabe+=64;
                                }
                        }
                    elseif(
    $i == 3)
                        {
                            if(
    $zahlen[2] == 1)
                                {
                                    
    $ausgabe+=32;
                                }
                        }
                    elseif(
    $i == 4)
                        {
                            if(
    $zahlen[3] == 1)
                                {
                                    
    $ausgabe+=16;
                                }
                        }
                    elseif(
    $i == 5)
                        {
                            if(
    $zahlen[4] == 1)
                                {
                                    
    $ausgabe+=8;
                                }
                        }
                    elseif(
    $i == 6)
                        {
                            if(
    $zahlen[5] == 1)
                                {
                                    
    $ausgabe+=4;
                                }
                        }
                    elseif(
    $i == 7)
                        {
                            if(
    $zahlen[6] == 1)
                                {
                                    
    $ausgabe+=2;
                                }
                        }
                    elseif(
    $i == 8)
                        {
                            if(
    $zahlen[7] == 1)
                                {
                                    
    $ausgabe+=1;
                                }
                        }
                }
                echo 
    $ausgabe;
        } 
    ?>
    Geändert von Snees (01.09.2012 um 10:48 Uhr)

  2. #2
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    6.080
    Thanked 9.118 Times in 2.995 Posts
    Blog Entries
    5

    Standard AW: IT-Zahlensysteme

    Zitat Zitat von Nico Beitrag anzeigen
    /e: Binär -> Dezimal umrechnen mit PHP, muss eine 8-stellige Zahl sein, nicht dynamisch.
    Spoiler:

    PHP-Code:
    <?php
    $input 
    $_GET['in'];
    $zahlen preg_split('//'$input, -1PREG_SPLIT_NO_EMPTY);
    $ausgabe 0;
    if(
    strlen($input)!=8)
        {
            echo 
    '8-Bit!';
        }
    else
        {
            for (
    $i $i $i++)
                {
                    if(
    $i == 1)
                        {
                            if(
    $zahlen[0] == 1)
                                {
                                    
    $ausgabe+=128;
                                }
                        }
                    elseif(
    $i == 2)
                        {
                            if(
    $zahlen[1] == 1)
                                {
                                    
    $ausgabe+=64;
                                }
                        }
                    elseif(
    $i == 3)
                        {
                            if(
    $zahlen[2] == 1)
                                {
                                    
    $ausgabe+=32;
                                }
                        }
                    elseif(
    $i == 4)
                        {
                            if(
    $zahlen[3] == 1)
                                {
                                    
    $ausgabe+=16;
                                }
                        }
                    elseif(
    $i == 5)
                        {
                            if(
    $zahlen[4] == 1)
                                {
                                    
    $ausgabe+=8;
                                }
                        }
                    elseif(
    $i == 6)
                        {
                            if(
    $zahlen[5] == 1)
                                {
                                    
    $ausgabe+=4;
                                }
                        }
                    elseif(
    $i == 7)
                        {
                            if(
    $zahlen[6] == 1)
                                {
                                    
    $ausgabe+=2;
                                }
                        }
                    elseif(
    $i == 8)
                        {
                            if(
    $zahlen[7] == 1)
                                {
                                    
    $ausgabe+=1;
                                }
                        }
                }
                echo 
    $ausgabe;
        } 
    ?>
    Um so Murksereien zu vermeiden hat ein kluger Mensch Schleifen erfunden :b

    PHP-Code:
    function dual2decimal($dual) {
        
    $decimal 0;
        for(
    $i 0$i strlen($dual); $i++) {
            
    $pos = (strlen($dual) - 1) - $i;
            
    $decimal += $dual[$i] * (pow(2$pos));
        }
        return 
    $decimal;

    Wesentlich übersichtlicher, kürzer und vorallem zu 100% dynamisch.
    Kannst 1-Stellige oder auch 100-Stellige Binärzahlen mit convertieren, ohne astronomischen Wartungsaufwand.


  3. The Following User Says Thank You to DMW007 For This Useful Post:

    Snees (02.09.2012)

Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.