Zamiana liczby szesnastkowej na dziesietna

Odpowiedz Nowy wątek
2014-12-30 14:10
0

Witam wszystkich,
Jestem zupełnie zielony w Javie i potrzebuje pomocy w napisaniu kodu do stworzenia kalkulatora do konwersji liczby szesnastkowej na dziesiętna. Byłbym wdzięczny, gdyby zostało to rozpisane łopatologicznie a nie za pomocą gotowej metody w Javie. Będę wdzięczny za jakakolwiek pomoc.

a to może pokaż co sam zrobiłeś ? a nie przychodzisz i dajcie mi gotowca. Jak dla mnie do śmieci - wojciechmaciejewski 2014-12-30 14:35

Pozostało 580 znaków

2014-12-30 14:25

No ale na kartce umiesz zrobić? Jeżeli umiesz to w kodzie będzie niemal identycznie.
Załóżmy że masz Stringa z liczbą w HEX. Wynik trzymasz w osobnej zmiennej, potęgę w osobnej.
Bierzesz ostatni znak ze Stringa -> konwertujesz na liczbę DEC -> mnożysz przez 16 podniesione do potęgi -> aktualizujesz wynik -> inkrementujesz potęgę -> skracasz Stringa o ostatni element.
Operacje powtarzasz aż String będzie pusty.

Pozostało 580 znaków

2014-12-30 14:33
1

aby zamienić liczę 16 na 10 to musisz kolejne liczby mnożyć razy 16 do potęgi z kolei np:
16FC --> (C 16 0) +( F 16</sup> 1) + (6 16 2) + (1 16 </sup> 3)
w systemie 16 jak pewnie wiesz to:
A = 10
B = 11
C = 12
D = 13
E = 14
F = 15

Więc podmieniasz
16FC(16) --> (12 16 0) + ( 15 16 </sup> 1) + (6 16 2) + (1 16 </sup> 3) = 5884

To w javie musisz podobnie robić np.
Kolejne elementy liczy w sys. 16 przypisujesz do tablicy ale odwrotnie (16FC zapisujesz w tablicy jako CF61). Powinieneś sobie poradzić
Później przeglądasz tablice :
element tablicy mnożysz razy 16 do potęgi index
jeżeli element = literom to podmieniasz na liczby

C jest na indexie 0.
C podmieniasz na 12
12 mnożysz razy 16 do potęgi index(0)
i dodajesz do zmiennej przechowującej wynik.

F jest na indexie 1.
F podmieniasz na 15
15 mnożysz razy 16 do potęgi index(1)
i dodajesz do zmiennej przechowującej wynik.

6 jest na indexie 2.
6 mnożysz razy 16 do potęgi index(2)
i dodajesz do zmiennej przechowującej wynik.

1 jest na indexie 3.
1 mnożysz razy 16 do potęgi index(3)
i dodajesz do zmiennej przechowującej wynik.

edytowany 1x, ostatnio: BirdSly, 2014-12-30 14:34

Pozostało 580 znaków

2014-12-30 14:39
0

Dziękuje bardzo za wskazówki, teraz już na pewno sobie poradzę

Pozostało 580 znaków

2014-12-30 15:03
0

Mam jeszcze jedno pytanie, jak podmienić litery na liczby?

Pozostało 580 znaków

2014-12-30 16:12
Krwawy Mleczarz
0

na przykład IF

Pozostało 580 znaków

2014-12-30 16:31
0

Ok, ale wobec tego jaki typ tablicy przyjąć? Integer czy String?

Pozostało 580 znaków

2014-12-30 16:43
0

Tablicy? Nie rozumiem pytania.

Pozostało 580 znaków

2014-12-30 16:50
0

W celu sprawdzenia czy poszczególne wprowadzane znaki są cyframi liczby heksadecymalnej, muszę sprawdzić kolejne elementy wprowadzanej liczby, czyli potraktować liczbę jako tablice czyż nie?

Pozostało 580 znaków

2014-12-30 17:46
0

Wprowadzasz znaki pojedynczo? W takim razie najlepiej przechowywać na stosie (LIFO), wtedy ściągając ze stosu nie musisz uwzględniać kroku "kasowanie ostatniego znaku w Stringu", a algorytm kończy się gdy stos stanie się pusty.

Pozostało 580 znaków

2014-12-30 17:52
2

Dziwne pomysły.

String hex = "17fd345";
String dec = ""+Integer.parseInt(hex,16);

To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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