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

Jak w prosty sposób rozbić bajt na dwie liczby 4-bitowe

Object Storage Arubacloud
0 głosów
193 wizyt
pytanie zadane 2 listopada 2019 w C i C++ przez manjaro Nałogowiec (37,390 p.)
Jak w temacie

Czy istnieje prosty sposób aby rozbić bajt (8 bitów) na dwie liczby 4-bitowe najlepiej od razu typu int.

Wiem że można na piechotę pobierać pojedyńcze bity i składać z nich dwie liczby, ale wydaje mi się to słąbym pomysłem i pytam czy jest coś bardziej właściwego?

1 odpowiedź

+1 głos
odpowiedź 2 listopada 2019 przez adrian17 Ekspert (345,160 p.)
wybrane 2 listopada 2019 przez manjaro
 
Najlepsza
Nie trzeba na poziomie pojedynczych bitów ;)

"Lewe" 4 bity to wartosc>>4. "Prawe" 4 bity to wartosc & 0b1111.
komentarz 2 listopada 2019 przez manjaro Nałogowiec (37,390 p.)
Dzięki Adrian, czegoś takiego szukałem.

Muszę nadrobić temat bitów bo mam duże braki.
komentarz 2 listopada 2019 przez manjaro Nałogowiec (37,390 p.)

Tylko jeszcze jedno małe pytanie, czy robię to właściwie bo kompilator cały czas mi wyrzuca warninga - binary integer literals are a C++14 extansion
 

int liczba = 150;
int prawa = liczba & 0b1111;

 

1
komentarz 2 listopada 2019 przez adrian17 Ekspert (345,160 p.)

binary integer literals are a C++14 extansion

No i ma rację. 0b1111 zapisałem dla czytelności, równie dobrze możesz napisać na przykład 0xF.

1
komentarz 2 listopada 2019 przez j23 Mędrzec (194,920 p.)

Kod jest ok, tylko kompilator mówi Ci, że taka postać liczby jest dostępna od C++14. Daj 0xF zamiast 0b1111 i nie będziesz miał warninga.

 

Spóźniłem...

komentarz 2 listopada 2019 przez manjaro Nałogowiec (37,390 p.)
Dziękuję panowie. Nie lubię żadnych nawet niegroźnych komunikatów ;) Zrobiłem już pewne obejście poprzez bitset <4> liczba; ale nie będę kombinował i zrobię tak jak podaliście z 0xF.
komentarz 2 listopada 2019 przez adrian17 Ekspert (345,160 p.)
bitset brzmi... jak gigantyczna armata na coś co można zrobić jednym operatorem :P

Dobra wiadomość, że oba generują ten sam kod na koniec: https://godbolt.org/z/6iw8p7

Podobne pytania

0 głosów
0 odpowiedzi 669 wizyt
0 głosów
3 odpowiedzi 480 wizyt

92,595 zapytań

141,444 odpowiedzi

319,717 komentarzy

61,980 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...