Dodawanie w tym systemie - kiedy użyć korekt?
Przykład:
Dodać liczby \(\displaystyle{ X=31,72, Y=68,63}\).
Koduję:
\(\displaystyle{ \quad (X)_{\mbox{Plus3}} = 0110 \ 0100 ,\ 1010 \ 0010 \\ + (Y)_{\mbox{Plus3}} = \underline{ 1001 \ 1011, \ 1001 \ 0110} & & \\ = \qquad \qquad \ \ 1 \ 0000 \ 0000 , \ 0011 \ 1000}\)
Oczywiście, poprawny wynik to liczba \(\displaystyle{ Z = 100,35}\), jej reprezentacja w systemie BCD Plus3 to:
\(\displaystyle{ 0100 \ 0011 \ 0011 , \ 1001 \ 1000}\)
Aby przejść do tego wyniku, trzeba użyć korekt, ale nie wiem według jakich zasad i nie mogę do tego dojść.
Kod BCD Plus3
Kod BCD Plus3
A nie powinno być wyniku \(\displaystyle{ 0100 \ 0011 \ 0011 , \ 0110 \ 1000}\) ?
Robiąc analogicznie jak w zwykłym BCD musi być korekcja jeśli mamy wyniki [0-2] lub [13-15]. Korekcja musi też następować jeśli przenosimy do grupy następnej.
Idąc od prawej. Pierwsza grupa jest ok nic nie robimy. Druga grupa to 0110 ale przenieśliśmy do następnej grupy więc dodajemy 3. Dostajemy 1001. Z kolejnych 2 grup też przenosimy więc dodajemy 3 do obu. Najbardziej na lewo grupa ma wartość 1 więc także dodajemy 3 i jest wszystko ok.
Chyba w ogólności powinno tak działać.
Robiąc analogicznie jak w zwykłym BCD musi być korekcja jeśli mamy wyniki [0-2] lub [13-15]. Korekcja musi też następować jeśli przenosimy do grupy następnej.
Idąc od prawej. Pierwsza grupa jest ok nic nie robimy. Druga grupa to 0110 ale przenieśliśmy do następnej grupy więc dodajemy 3. Dostajemy 1001. Z kolejnych 2 grup też przenosimy więc dodajemy 3 do obu. Najbardziej na lewo grupa ma wartość 1 więc także dodajemy 3 i jest wszystko ok.
Chyba w ogólności powinno tak działać.