1. #1
    U-Labs Legende
    Avatar von Snees
    Registriert seit
    18.11.2011
    Beiträge
    1.000
    Thanked 589 Times in 318 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
    Projektleitung
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    4.058
    Thanked 8.487 Times in 2.530 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.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191