Bit C++

6 отговора 272 прегледа
в отговор на Mtx_BG #2

Re: Bit C++

Доста неточно зададен въпрос.
BYTE a= ??;
BYTE b= a & 0xf0; // старши полубайт
BYTE c= a & 0x0f; // младши полубайт

Отговор
в отговор на Cизиф #3

Re: Bit C++

BYTE b= a & 0xf0; // старши полубайт

Не е ясно дали трябва в този случай, ама често се налага по-скоро това:

BYTE b= (a & 0xf0)>>4;

---
Не е важно да си добър, важното е да си ман-и-як!
Отговор
в отговор на ess #4

Re: Bit C++

twa shto pyrwo mu prawish and :)
sled kato go shiftwash posle nadiasno :))

Отговор
в отговор на ess #5

Re: Bit C++

Всъщност правилният код е това:

b = (a >> 4) & 0x0f; // За всеки случай, току-виж a се оказало по-голямо от един байт

Отговор
в отговор на ironcode #6

Re: Bit C++

Абе съгласен, ама:

b = (a & 0xf0)>>4;

и

b = (a >> 4) & 0x0f;

са ъпсулутно еквивалентни :)

Отговор
в отговор на Pesho® #7

Re: Bit C++

Пък като се позамисля, май най-бързо е така:

b = ((unsigned char)a) >> 4;

Разбира се, ако a и без това си е "unsigned char", може да се разкара грозния cast.

Отговор