Jak poprawnie zamienić liczbę binarną 15 na kod BCD: 00001111 do 00010101?
Konwersja kodu binarnego na BCD?
From: "Tomasz Brychcy" <tbrychcy_at_nospam_sensor.ime.pz.zgora.pl>
Subject: Konwersja kodu binarnego na BCD?
Date: Mon, 27 Mar 2000 10:55:56 +0200
Czesc wszystkim,
Jak zamienic liczbe binarna na liczbe w kodzie BCD np.
15 w kodzie binarnym to: 00001111
15 w kodzie BCD to: 00010101
Z gory dzieki
odpowiedz prosze na adres:
tbrychcy_at_nospam_sensor.ime.pz.zgora.pl
From: Pawel Sklarow <p.sklarow_at_nospam_mikrotel.com.pl>
Subject: Re: Konwersja kodu binarnego na BCD?
Date: Mon, 27 Mar 2000 10:06:04 GMT
Tomasz Brychcy wrote:
Czesc wszystkim,
Jak zamienic liczbe binarna na liczbe w kodzie BCD np.
15 w kodzie binarnym to: 00001111
15 w kodzie BCD to: 00010101
Z gory dzieki
odpowiedz prosze na adres:
tbrychcy_at_nospam_sensor.ime.pz.zgora.pl
W '51:
bin2bcd:
mov b,#10
div ab
swap a
anl a,#0f0h
orl a,b
ret
W C:
char bin2bcd(char in)
{
return (((in / 10) << 4) & 0xf) | (in % 10);
}
From: Wojciech Puchar <wojtek_at_nospam_from.pl>
Subject: Re: Konwersja kodu binarnego na BCD?
Date: Mon, 27 Mar 2000 15:02:24 GMT
Tomasz Brychcy <tbrychcy_at_nospam_sensor.ime.pz.zgora.pl> wrote:
Czesc wszystkim,
Jak zamienic liczbe binarna na liczbe w kodzie BCD np.
15 w kodzie binarnym to: 00001111
15 w kodzie BCD to: 00010101
1) dzielisz liczbę (x) przez dziesięć. wynik to y, reszta to r
2) dzielisz liczbę y przez dziesięc, wynik to x, reszta to s
3) ostatni (najmłodszy bajt) to s*16+r
4) jeśli x>0 to powtarzasz kroki 1,2,3 aby uzyskać kolejny (od lewej) bajt