Decimaal naar binair 2

Door Teun Beijers, 14 jaar geleden, 3.933x bekeken

De decbin functie in php kan maximaal 32 bits aan(4294967295), dus ik dacht: laat ik eens een functie schrijven die er meer aankan. Deze kan er zoveel aan als jij invoert, het werkt wel iets anders dan de orginele functie(ook iets langzamer), maar hij doet 't.
De functie uitgelegt:
decbin2($number, $bits, $cuttoff)
$number = een decimaal getal

$bits = aantal bits(0'en en 1'en) vanaf waar de functie moet gaan rekenen, lager=sneller, maar het getal moet er nog wel inpassen

$cutoff = de onnodige 0'en op het begin weghalen(true of false)

EDIT: uit tests blijkt dat php onnauwkeurig wordt bij zeer hoge getallen, hier valt niks aan te doen

Gesponsorde koppelingen

PHP script bestanden

  1. decimaal-naar-binair-2

 

Er zijn 7 reacties op 'Decimaal naar binair 2'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
GaMer B
GaMer B
14 jaar geleden
 
0 +1 -0 -1
Hmm, een soort van 64bit versie van de decbin(); functie. Klinkt goed.
Teun Beijers
Teun Beijers
14 jaar geleden
 
0 +1 -0 -1
Gamer, het is zelfs een 256 bit of 512 of zoveel als je wilt bit versie.
Hipska BE
Hipska BE
14 jaar geleden
 
0 +1 -0 -1
ik denk niet dat hij alles juist zal doen bij 256bit hoor. dit ligt namelijk in de limitatie van de hardware.
Iltar van der berg
iltar van der berg
14 jaar geleden
 
0 +1 -0 -1
Ik heb op school nog een paar functies gemaakt die dit met javascript deden:

bin2dec() en dec2bin() en dan ook nog dec2hex en hex2dec()

misschien leuk om een hex functie toe te voegen?
Joeri
Joeri
14 jaar geleden
 
0 +1 -0 -1
ZIet er keurig uit, maar inderdaad zal de hardware voor limitaties zorgen, de fouten bij hogere getallen zit niet in het script en valt dus inderdaad programmatorisch niets aan te doen. Eens op een 64 bit Uittesten he of op een nieuwe Intel Itanium he.
Niek
Niek
14 jaar geleden
 
0 +1 -0 -1
Ik had er ook een keer 1 gemaakt die ook meer aan kan:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
function dec2bin( $dec )
{

    $dec = $dec * 2;
    $bin = '';
    while( $dec = floor( $dec / 2 ) ){
        $bin .= $dec % 2;
        if($dec == 1) {
            break;
        }
    }

    return strrev($bin);
}

function
bin2dec( $bin ) {
    $length = strlen( $bin );
    $dec = '';
    for ( $i = 0;$i < $length ; $i++ ) {
        $getal = substr($bin, $length - $i - 1, 1);
        $dec += $getal * pow(2, $i);
    }

    return $dec;
}


$num = 10;
echo bin2dec($num) .'<br />';
echo dec2bin($num);

?>

edit: Typo
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Kay Kay
Kay Kay
13 jaar geleden
 
0 +1 -0 -1
Dit is mijn versie:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
function bin($int)
{

    $i = 0;
    $binair = "";
    while($int >= pow(2,$i))
    {

        $i++;
    }

    
    if($i != 0)
    {

        $i = $i-1; //max i
    }

    while($i >= 0)
    {

        if($int - pow(2,$i) < 0)
        {

            $binair = "0".$binair;
        }
else{
            $binair = "1".$binair;
            $int = $int - pow(2,$i);
        }

        
        $i--;
    }

    return $binair;
}



$getal = $_GET['getal'];

    
echo bin($getal);
?>


Werkt ook uitstekend. Had hem eigenlijk gemaakt voor mijn TI84plus, maar wou hem ook wel op de pc.
De functie decbin() werkt bij mij niet :S

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. decimaal-naar-binair-2

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.