java - Incorrect return on binary to dec converter -


fixing , tidying converter when noticed somehow gives out incorrect conversions.

for example, when creating new number convert using binarynumber bn1 = new binarynumber("1011"); , asking give out result system.out.println(bn1.converttodecimal()); prints out 3 instead of correct result of 11.

i'm sure got actual conversion wrong going through in head can't find mistake.

public class binarynumber {     private string n;      public binarynumber(string pn) {         n = pn;     }      public string getn() {         return n;     }      // creating .converttodecimal()     public int converttodecimal() {         int bitposition = 0;         int sum = 0;          (int = n.length() - 1; >= 0; i--) {             sum = sum + (int) math.pow(2, bitposition) * (n.charat(i) - 48);         }         return sum;     }      // creating .add add 2 different binary numbers after     // converting     public int add(binarynumber bn2) {         return converttodecimal() + bn2.converttodecimal();     }      // creating .sub subtract 2 different binary numbers after     // converting     public int sub(binarynumber bn2) {         return converttodecimal() - bn2.converttodecimal();     } } 

you need increment bitposition variable.

int bitposition = 0; int sum = 0;

  (int = n.length() - 1; >= 0; i--) {      sum = sum + (int) math.pow(2, bitposition++) * (n.charat(i) - 48);    }   return sum; 

Comments

Popular posts from this blog

php - Invalid Cofiguration - yii\base\InvalidConfigException - Yii2 -

How to show in django cms breadcrumbs full path? -

ruby on rails - npm error: tunneling socket could not be established, cause=connect ETIMEDOUT -