Konwersja liczby z binarnej na dziesiętną

0

Witam.
Mam do ogarnięcia takie zadanie i jakoś nie mam pomysłu na to, żeby to działało jak powinno, bo wyniki daje różne. Aha i jest ograniczenie do używania wyłącznie operacji bitowych.
Z góry dzięki za pomoc :)

Napisać i przetestować w programie własną metodę int binStringToInt(String b), która dla łańcucha b (reprentującego zapis dwójkowy liczby całkowitej typu int) zwraca jej zapis w systemie dziesiętnym, np. binStringToInt("1110") -> 14.

public static void main(String[] args)
{
String binarna = "1110";
System.out.println(binStringToInt(binarna));
}

public static String binStringToInt(String b)
{
int dziesietna = 0;
int w = 1;

for(int i = 0; i < b.length() ; i++)
{
if(b.charAt(i) == '1')
dziesietna += w;
w <<= 1;
}
System.out.println(dziesietna);
return "";
}

0

Funkcja dobra, tylko patrzysz na string ze złej strony. Powinieneś iść od końca do początku, czyli od mniej znaczących bitów do bardziej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1