ZX Spectrum > PROGRAMOWANIE

Konwerter HEX to BIN i odwrotność

(1/6) > >>

Gelip:
Potrzebuję program, który zamienia wartość HEX 8-bit na BIN, odwraca bity i oblicza znowu HEX:

--- Kod: ---HEX -> BIN -> REVBIN -> HEX
40 - 01000000 - 00000010 - 2
C0 - 11000000 - 00000011 - 3
78 - 01111000 - 00011110 - 1e
--- Koniec kodu ---

Znalazłem jakieś programy i próbuję zlepić ale coś chyba pomieszałem i nie wiem jak teraz zamienić znowu bin na dec i na hex:
HEXtoDEC
DECtoBIN
Wyszło mi coś takiego.

DEC mi w sumie nie potrzebne tylko hex i bin

trojacek:
A jakie masz wymagania jeśli chodzi o wydajność? To jednorazowa konwersja, czy coś, co jest liczone na bieżąco?
Bo jeśli to ma być zrobione prosto i działać szybko, to ja bym to stablicował jako nibble (4 bity):

0 -> 0
1 -> 8
2 -> 4
3 -> C
4 -> 2
...
E -> 7
F -> F

Nie zapominając o zamianie miejscami młodszego nibble ze starszym.
Unika się jakiejkolwiek konwersji z/na format binarny*, przesuwania bitów itp. Masz znaki HEX na wejściu i znaki HEX na wyjściu.

* - z wyjątkiem policzenia indeksu do tablicy.

Gelip:
Chodzi o jednorazowe przeliczenie:

[*]program pyta o wartość HEX 8-bit
[*]konwertuje na bin, odwraca i konwertuje na hex
[*]wszystko wyświetla ładnie na ekranie i goto początek[/list]

Nie ukrywam iż chciałem gotowca  :P w przeciwnym razie będę musiał przysiąść do tego co mam bo już prawie uzyskałem rozwiąznie - trzeba by rozpisać na kartce blokowo co robią poszczególne części programu i gdzie mają być skoki goto.

Da się w BASIC'u bez zamiany na dec tylko od razy na bin?

trojacek:
To jakiś przykład dydaktyczny? Bo nie bardzo widzę w nim sens.

Gelip:

--- Cytat: trojacek w 2021.11.07, 12:49:18 ---To jakiś przykład dydaktyczny? Bo nie bardzo widzę w nim sens.

--- Koniec cytatu ---
Konwerter kodu IR w formacie 32-bit unsigned integer na kod NEC ADDR=xx, CMD=xx np.
mam kod przycisku 807F28D7 gdzie adres 80 NOT=7F polecenie 28 NOT=D7 i z tego ma wyjść:

80h = 10000000b -> rev 00000001 = 01h ADDR
28h = 00101000b -> rev 00010100 = 14h CMD

Nawigacja

[0] Indeks wiadomości

[#] Następna strona

Idź do wersji pełnej