<?php  $str2 = 01234;  echo "八进制输出结果是:$str2<br>"; //668
 echo  decoct(1234); //2322?>668和2322到底哪个是八进制转化后的结果,又是怎么算的呢?

解决方案 »

  1.   

     01234是八进制表示法
    decoct是将十进制转成八进制668是十进制
    2322是八进制
      

  2.   

    本帖最后由 xuzuning 于 2010-08-05 06:39:30 编辑
      

  3.   

    为什么$str2 = 01234;以输出就成了668了呢?为什么不是01234呢?以前没有接触过,所以搞不懂,请各位仁兄指点!
      

  4.   

    那是因为php默认数据是十进制方式
    所以 八进制 01234 被php转换成了 十进制 668 了
    这与 十六进制 一样
    echo 0xff; //输出结果为 255
      

  5.   

    有前导0标识是8进制,而php默认进制是10进制,所以输出的是10进制的668
      

  6.   

    那是因为PHP认为前面的0是前导标识,就当成8进制了,而php默认输出的是10进制。
    所以你的
    echo "八进制输出结果是:$str2<br>"; //668

    echo 0xff; //输出结果为 255
    一个道理