document.write(Number("0x123"));

解决方案 »

  1.   

    唉, 问题已解决多时, 咱也不卖关子了....<script type="text/javascript">
    //<![CDATA[ var Oct = 012765;
     
     document.write("Oct(012765): ", Oct, "<p/>");
     document.write
     (
      "fXRadixToDecimal('012765', 8, true): ",
      fXRadixToDecimal('012765', 8, true),
      "<hr/>" 
     ); var Hex = 0x12765;
     
     document.write("Hex(0x12765): ", 0x12765, "<p/>");
     document.write
     (
      "fXRadixToDecimal('0x12765', 16, true): ",
      fXRadixToDecimal('0x12765', 16, true),
      "<hr/>" 
     ); var Bin = 110111;
     
     document.write("Bin(110111): ", 55, "<p/>");
     document.write
     (
      "fXRadixToDecimal('110111', 2, true): ",
      fXRadixToDecimal('110111', 2, true),
      "<hr/>" 
     ); function fXRadixToDecimal(sIpt, iRadix, bDebug)
     {// shawl.qiu code : return integer
      var Debug = bDebug;
      if(!iRadix||/^0x/i.test(sIpt))
      {
       iRadix = 16;
      }
      if(iRadix==16)
      {
       sIpt = sIpt.replace(/^0x/i, "");
      }
      var Ar = fStringToArray(sIpt);
      var iResult = iTemp = 0;
      
      Ar.reverse();
      var Len = Ar.length;
      
      while(--Len>=0)
      {
       switch(iRadix)
       {
        case 16:
         iTemp = fHexMap(Ar[Len]);
         break;
        
        default:
         iTemp = Ar[Len]-0;
         break;
       } // end switch
       
       iResult += iTemp*Math.pow(iRadix, Len);
       
       if(Debug)
        document.write
        (
         iTemp, 
         "*", 
         Math.pow(iRadix, Len), 
         "=", 
         iTemp*Math.pow(iRadix, Len), 
         "<br/>"
        );
      } // end while
      
      if(Debug)
       document.write("= ",iResult, "<p/>");
       
      return iResult;
      
      function fStringToArray(sIpt)
      {// shawl.qiu script
       if(!sIpt||sIpt=="") return [];
       var Ar = [];
       var Len = sIpt.length;
       while(--Len>=0)
       {
        Ar[Len] = sIpt.charAt(Len);
       }
       return Ar;
      } // function fStringToArray1(sIpt)
      
      function fHexMap(IptChar)
      {
       if(/^[a-f0-9]$/i.test(IptChar)==false)
       {
        throw new Error("输入字符("+IptChar+")不符合十六进制字符!")
       }
       
       switch(IptChar.toLowerCase())
       {
        case "a": return 10;
        case "b": return 11;
        case "c": return 12;
        case "d": return 13;
        case "e": return 14;
        case "f": return 15;
        default:
         return IptChar-0;
       }
      } // end function fHexMap
      
     } // end function fXRadixToDecimal//]]>
    </script>
      

  2.   

    //hexstr: 0x(([1-9a-f][0-9a-f]+)|(0))合法的16进制字符串
    function hex2dec(hexstr){
        var o = {0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,b:11,c:12,d:13,e:14,f:15};
        var ar = hexstr.replace(/^0x/,"").split("").reverse();
        var sum = 0;
        for(var i=0,l=ar.length;i<l;i++)
            sum += o[ar[i]] * Math.pow(16,i);
        return sum;
    }document.write(hex2dec("0x1320123af"),"<br>");
    document.write(Number("0x1320123af"),"<br>");
      

  3.   

    呵呵, 那我再来个 十进制转 x 制....
    如果我心血来潮, 大概会弄个 x 制 转 y 制...<script type="text/javascript">
    //<![CDATA[
     document.write
     (
      "fDecimalToXRadix(55, 2, true): "
      ,fDecimalToXRadix(55, 2, true)
      ,"<hr/>"
     );
     
     document.write
     (
      "fDecimalToXRadix(5621, 8, true): "
      ,fDecimalToXRadix(5621, 8, true)
      ,"<hr/>"
     );
     
     document.write
     (
      "fDecimalToXRadix(75621, 16, true): "
      ,fDecimalToXRadix(75621, 16, true)
      ,"<hr/>"
     ); function fDecimalToXRadix(iDec, iRadix, bDebug)
     {// shawl.qiu code : return string;
      iDec-=0;
      if(iDec===0) return 0;
      var NumAr = [];
      var iCount = 0;
      var Debug = bDebug;
      var iMod = 0;
      while(iDec>iRadix)
      {
       iMod = iDec%iRadix;
       NumAr[iCount++] = iMod;
       iDec = Math.floor(iDec /= iRadix);
       
       if(Debug)
       {
        document.write("iMod: ", iMod, "<br/>");
        document.write("iDec: ", iDec, "<p/>");
       }
      } // end while
      NumAr[iCount] = iDec;
      NumAr.reverse();
      return NumAr.join("");
      
      if(Debug)
      {
       document.write("NumAr: ", NumAr, "<p/>");
      }
     } // end function fDecimalToXRadix(iDec, iRadix, bDebug)
    //]]>
    </script>
      

  4.   

    <script type="text/javascript">
    alert(parseInt("FF", 16));
    </script>
      

  5.   

    10进制转X进制还用写啊? 直接 Number.toString(number,x)不就可以了
      

  6.   

    最后一个貌似于 huffman 最优二叉数的权值....