problem mit base_convert()

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • problem mit base_convert()

    Hallo,

    wenn ich in dem Script

    PHP-Code:
    <?php
    /*02*/ 
    /*03*/ //$i = base_convert(10001, 2, 10); // 17
    /*04*/ //$i = 17;
    /*05*/ //$i = bindec(10001); // 17
    /*06*/ 
    /*07*/ //$k = base_convert(11110, 2, 10); // 30
    /*08*/ //$k = 30;
    /*09*/ //$k = bindec(11110); // 30
    /*10*/ 
    /*11*/ 
    echo ($i $k)."\n";
    /*12*/ 
    ?>
    die Zeilen 4 und 8 aktiviere, dann wird 16 ausgegeben. Wenn ich 5 und 9 aktiviere wird auch 16 ausgegeben. Das verstehe ich. Wenn ich 3 und 7 aktiviere, dann wird eine 10 ausgegeben. Das verstehe ich nicht. Ich würde erwarten, dass in dem Fall auch eine 16 ausgegeben wird. Kann mir das jemand erklären? Vielen lieben Dank im Voraus.

  • #2
    erst mal beruhige dich!
    das ist kein Anomalie!
    wenn du deine binere zahlen in hohkomas nimmst, dann wird es wunderbar klappen.
    Slava
    bituniverse.com

    Kommentar


    • #3
      Danke für deine Antwort. Leider wird aber immer noch eine 10 ausgegeben, wenn ich die binären Zahlen in den Zeilen 3 und 7 in Hochkommas einschließe. Ich hätte aber eine 16 erwartet.
      PHP Version 5.1.4

      Kommentar


      • #4
        Interessante Frage.
        Siehe das zweite und dritte Beispiel im manual, unter Bitwise Operators.
        Zuletzt geändert von tcpip; 23.06.2006, 23:50.

        Kommentar


        • #5
          tcpip, vielen Dank für deine Antwort. Ohne die wäre ich wohl nicht drauf gekommen. base_convert() gibt eine Zeichenkette zurück. In den anderen Fällen (also in den Zeilen 4 und 5 für $i) ist $i eine Zahl. Man kann also $i = (int) base_convert(10001, 2, 10); schreiben (und für $k genauso), damit es funktioniert. Denn dann wird die Rückgabe von base_convert() in eine Zahl konvertiert.

          Vielen vielen Dank nochmal.

          Kommentar

          Lädt...
          X