• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Łączenie dwóch części liczby binarnej w jedną

VPS Starter Arubacloud
0 głosów
270 wizyt
pytanie zadane 17 czerwca 2022 w Mikrokontrolery przez Mavimix Dyskutant (8,420 p.)
Czujnik z którym się łączę zwraca do mikrokontrolera (AVR) liczbę w dwóch "pakietach" - jak ją połączyć w jedną liczbę? Np.:

1. dostaje wartość LSB np. 100001(bin)

2. dostaję wartość MSB np. 1111(bin)

3. chcę mieć liczbę powstałą z połączenia LSB i MSB

w jaki sposób  mogę "łączyć" te części w jedną? Co w przypadku gdy tych części jest więcej niż 2?

1 odpowiedź

+2 głosów
odpowiedź 17 czerwca 2022 przez Oscar Nałogowiec (29,340 p.)
wybrane 17 czerwca 2022 przez Mavimix
 
Najlepsza

Skleić. MSB oznacza Most significant bits - bity najbardziej znaczące. I te idą najpierw (od lewej).

Połączyć to najlepiej przy pomocy operacji przesunięć bitowych i sumowania logicznego:

Najpierw przesuwamy w lewo (mnożymy) MSB o tyle bitów ile ma LSB

MSB << 8;

Potem dodajemy (w sumie wszystko jedno czy logicznie | czy arytmetycznie +)

MSB << 8 | LSB

Trzeba tylko pilnować typów zmiennych by nie wyjść poza liczbę bitów z których się składają. Najbezpieczniej zastosować sekwencję:

uint16_t wynik;   // 16 bitów wystarczy na połączenie, 8+4 = 12
wynik = MSB;
wynik << 8;
wynik |= LSB;

Można oczywście pojechać dalej (ale tu już 16 bitów nie wystarczy):

wynik << 8;
wynik |= LSB2;

 

komentarz 17 czerwca 2022 przez Mavimix Dyskutant (8,420 p.)
dokładnie o to mi chodziło, dzięki

Podobne pytania

0 głosów
1 odpowiedź 852 wizyt
0 głosów
0 odpowiedzi 1,467 wizyt
+1 głos
1 odpowiedź 1,879 wizyt
pytanie zadane 11 stycznia 2016 w C i C++ przez robert9620 Stary wyjadacz (11,640 p.)

92,979 zapytań

141,943 odpowiedzi

321,189 komentarzy

62,308 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...