Как получить пару бит из байта средствами С
От: vim  
Дата: 31.08.06 14:01
Оценка:
Задан байт 10101011, нужно получить первые два бита слева, но вот как это сделать
Re: Как получить пару бит из байта средствами С
От: ak_miass Россия  
Дата: 31.08.06 14:13
Оценка: +1
Здравствуйте, vim, Вы писали:

vim>Задан байт 10101011, нужно получить первые два бита слева, но вот как это сделать


int Byte = 0xAB;
bool first_bit = Byte & 0x80;
bool second_bit = Byte & 0x40;

P.S.:
vim всё таки почитай книжку какую нибудь. Каждый день вопросы из разряда Hello World.
Re: Как получить пару бит из байта средствами С
От: kan_izh Великобритания  
Дата: 31.08.06 14:17
Оценка:
vim wrote:

> Задан байт 10101011, нужно получить первые два бита слева, но вот как

> это сделать
тупо:
int bit7 = (byte & 1 << 7) != 0;
int bit6 = (byte & 1 << 6) != 0;
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[2]: Как получить пару бит из байта средствами С
От: ak_miass Россия  
Дата: 31.08.06 14:28
Оценка:
Точнее не bool, а int.
Re: Кто приклепает к задаче буст? :)))
От: Аноним  
Дата: 31.08.06 20:13
Оценка: :))
Здравствуйте, vim, Вы писали:

vim>Задан байт 10101011, нужно получить первые два бита слева, но вот как это сделать


субж
Re[2]: Никто
От: apple-antonovka  
Дата: 31.08.06 21:41
Оценка:
Буст таки это уже С++
Кстати, а почему никто не вспомнил про битовые поля?
Re: Как получить пару бит из байта средствами С
От: gear nuke  
Дата: 31.08.06 22:15
Оценка:
Здравствуйте, vim, Вы писали:

vim>Задан байт 10101011, нужно получить первые два бита слева, но вот как это сделать


Зависит от того, что с ними потом предстоит делать. Они оба сразу нужны?
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[3]: Никто
От: dotidot Россия  
Дата: 31.08.06 22:21
Оценка:
Здравствуйте, apple-antonovka, Вы писали:

AA>Буст таки это уже С++

AA>Кстати, а почему никто не вспомнил про битовые поля?

потому что с ними могут быть приколы.


union a
{
uchar b1:1;
uchar b2:1;
int b3:6;
};



Отгадай чему равен sizeof(a)
Re[4]: Никто
От: apple-antonovka  
Дата: 01.09.06 08:09
Оценка:
Здравствуйте, dotidot, Вы писали:

D>Здравствуйте, apple-antonovka, Вы писали:


AA>>Буст таки это уже С++

AA>>Кстати, а почему никто не вспомнил про битовые поля?

D>потому что с ними могут быть приколы.


D>

D>union a
D>{
D>uchar b1:1;
D>uchar b2:1;
D>int b3:6;
D>};

D>



D>Отгадай чему равен sizeof(a)

max(sizeof(int),sizeof(uchar)), а в чем прикол? union он и в Африке union
Re[2]: Как получить пару бит из байта средствами С
От: vim  
Дата: 01.09.06 13:30
Оценка:
Нужно проверить все пары входящих в байт бит
Сейчас ничего лучше не придумал как:
псевдокод:
byte & 3
byte >>= 2
Re[3]: Как получить пару бит из байта средствами С
От: gear nuke  
Дата: 01.09.06 15:06
Оценка:
Здравствуйте, vim, Вы писали:

vim>Нужно проверить все пары входящих в байт бит

vim>Сейчас ничего лучше не придумал как:
vim>псевдокод:
vim>byte & 3
vim>byte >>= 2

А что понимается под проверкой? От этого довольно много зависит. Например, проверить, что все 4 пары бит имеют 0ё значение можно так: if ( ! byte )
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.