Bit C++
6 отговора
272 прегледа
Re: Bit C++
Доста неточно зададен въпрос.
BYTE a= ??;
BYTE b= a & 0xf0; // старши полубайт
BYTE c= a & 0x0f; // младши полубайт
BYTE a= ??;
BYTE b= a & 0xf0; // старши полубайт
BYTE c= a & 0x0f; // младши полубайт
Re: Bit C++
BYTE b= a & 0xf0; // старши полубайт
Не е ясно дали трябва в този случай, ама често се налага по-скоро това:
BYTE b= (a & 0xf0)>>4;
---
Не е важно да си добър, важното е да си ман-и-як!
Не е ясно дали трябва в този случай, ама често се налага по-скоро това:
BYTE b= (a & 0xf0)>>4;
---
Не е важно да си добър, важното е да си ман-и-як!
Re: Bit C++
twa shto pyrwo mu prawish and :)
sled kato go shiftwash posle nadiasno :))
sled kato go shiftwash posle nadiasno :))
Re: Bit C++
Всъщност правилният код е това:
b = (a >> 4) & 0x0f; // За всеки случай, току-виж a се оказало по-голямо от един байт
b = (a >> 4) & 0x0f; // За всеки случай, току-виж a се оказало по-голямо от един байт
Re: Bit C++
Абе съгласен, ама:
b = (a & 0xf0)>>4;
и
b = (a >> 4) & 0x0f;
са ъпсулутно еквивалентни :)
b = (a & 0xf0)>>4;
и
b = (a >> 4) & 0x0f;
са ъпсулутно еквивалентни :)
Re: Bit C++
Пък като се позамисля, май най-бързо е така:
b = ((unsigned char)a) >> 4;
Разбира се, ако a и без това си е "unsigned char", може да се разкара грозния cast.
b = ((unsigned char)a) >> 4;
Разбира се, ако a и без това си е "unsigned char", може да се разкара грозния cast.