How to convert binary fraction to decimal

前端 未结 6 1168
北荒
北荒 2020-12-10 10:52

Javascript has the function parseInt() which can help convert integer in a binary form into its decimal equivalent:

parseInt(\"101\", 2) // 5
         


        
6条回答
  •  遥遥无期
    2020-12-10 11:24

    You can create javascript extension method like parseInt as I have created method parseBinary which works just link parseInt.

    String.prototype.parseBinary = function parseBinary() {
      var radix = 2;
      var s = this.split('.');
      var decimal = parseInt(s[0], radix);
    
      if(s.length > 1){
        var fract = s[1].split('');
    
        for(var i = 0, div = radix; i < fract.length; i++, div = div * radix)
        {
          decimal = decimal + fract[i] / div;
        }
      }
      return decimal;
    };
    

    To use this method you can call it using following code.

    var str = "0.101";
    alert(str.parseBinary());
    

    Here is a working example of javascript code

    String.prototype.parseBinary = function parseBinary() {
      var radix = 2;
      var s = this.split('.');
      var decimal = parseInt(s[0], radix);
    
      if(s.length > 1){
        var fract = s[1].split('');
    
        for(var i = 0, div = radix; i < fract.length; i++, div = div * radix)
        {
          decimal = decimal + fract[i] / div;
        }
      }
      return decimal;
    };
    
    var str = "0.101";
    alert(str.parseBinary());

提交回复
热议问题