Skocz do zawartości
Zaloguj się, aby obserwować  
idemaso

podział liczby binarnej

Pomocna odpowiedź

mam mały problem potrzebuje podzielić liczbę binarną na dwie osobne wartości:

przykład 1100110011 na 11001 10011 , istnieje jakiś rejestry z komendą który odseparuje mi ciąg bina na dwie części.( nie chodzi mi sposób matematyczny )

help me 😉

Udostępnij ten post


Link to post
Share on other sites

Nie bardzo rozumiem jak chcesz to zrobić niematematycznie, ale osobiście zrobiłbym to mniej-więcej tak, że najpierw zmienną XY (do podzielenia) zapisałbym do krótszej Y, zastosowałbym przesunięcie bitowe (o tyle ile bitów chcemy 'obciąć') i zapisał do X.

Udostępnij ten post


Link to post
Share on other sites

Do tego służy logiczne AND. W C jest to operator & w basicu pewnie AND.

Wykonujesz x & maska i w wyniku dostajesz "wycięty" fragment liczby x.

Czyli:

1100110011 & 0000011111 = 0000010011

1100110011 & 1111100000 = 1100100000

Udostępnij ten post


Link to post
Share on other sites

A ja bym użył wskaźników 🙂 Na zmienną int ustawił bym wskaźnik char, przypisał wartość zmiennej pomocniczej a następnie przesunął wskaźnik.

Udostępnij ten post


Link to post
Share on other sites
nie chodzi mi sposób matematyczny

Chyba logiczny 😉 Do tego co napisał Elvis dokonujesz ewentualnego przesunięcia o 5 bitów bardziej znaczącej części i masz odseparowane tak jak chciałeś. Jeśli piszesz w asemblerze nie powinieneś mieć żadnych problemów z obsłużeniem tych działań.

Udostępnij ten post


Link to post
Share on other sites

w C użyłbym raczej do tego unii

zapisałbym wyraz jako zmienna 16 bitowa,
a odczytałbym jako dwie ośmiobitowe.

Jest to bardzo wygodne rozwiązanie i działa w obydwie strony.

Stosuję je np. przy zczytywaniu temperatury z czujnika DS18B20 (12-bitowego)

gdzie wartość całkowita jest na 8 starszych bitach, a 4 młodsze to część ułamkowa.

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

Zaloguj się, aby obserwować  

×
×
  • Utwórz nowe...