Gå til innhold

Anbefalte innlegg

Joda, poster her bare for å få tips om forenkling av koden =]

 

    public int binToDec(String bin) {
       int dec = 0;
       int m = 1;
       for(int i=0; i < bin.length(); i++) {
           dec += bin.charAt(bin.length() - i - 1) == '1' ? m : 0;
           m += m;
       }
       return dec;
   }

   public String decToBin(int dec) {
       String revBin = "";
       double curNum = dec;
       while(curNum > 1) {
           double num = curNum / 2;
           if((int)num != num) {
               revBin += "1";
           } else {
               revBin += "0";
           }
           if(((int)num) == 1) {
               revBin += "1";
           }
           curNum = (int)num;
       }
       String realBin = "";
       for(int i=0; i<revBin.length(); i++) {
           realBin += revBin.charAt(revBin.length() - i - 1);
       }
       return realBin;
   }

 

Edit:

 

Hvis det skulle være uklart er

 

DecToBin altså Decimaltall til binærtall

og da blir

BinToDec det motsatte som er binær til decimal...

Endret av Meanzie
Lenke til kommentar
Videoannonse
Annonse

decToBin kan du forenkle en god del uten å gå bort fra prinsippet du bruker. Regner med du ikke vil ha kode.

 

Du kan legge til tegnene forran(som radlekatt sier). Du kan bruke heltallsdivisjon og modulo i stede for flyttall. Fortsett helt til du får 0, så slipper du special case.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...