为什么这段代码的结果是37?

时间:2017-11-10 10:08:50

标签: php

为什么这段代码的结果是37?

$a = 11 + 011 + 0x11;
var_dump($a);//result = 37

2 个答案:

答案 0 :(得分:2)

    var htmlParser = document.createElement('div');
    htmlParser.innerHTML = v;
    // replace text node with parsed nodes
    var newNodes = htmlParser.childNodes;
    while (newNodes.length) {
      textNode.parentNode.insertBefore(newNodes[0], textNode);
    }
    textNode.parentNode.removeChild(textNode);

基础16

$a = 11    +   011    +   0x11;
     ^          ^          ^
  base 10    base 8       base 16
    11     +   9      +    17          = 37

基础8

0x11 =   1 * 16^1 (16)
       + 1 * 16^0 ( 1)
     -----------------
      0x11        (17)

表格

11 = 1×8^1 + 1×8^0 = 8+1 = 9

答案 1 :(得分:0)

结果是37,因为所有数字的总和评估为37。

011 - 这被认为是八进制值(从0开始),因此等于9。

0x11 - 这被认为是十六进制值,因此它等于17

因此:

11 + 011 + 0x11

可以写成:

11 + 9 + 17 = 37

或许看看PHP Manual