Как обнулить биты?
От: Tosha Россия  
Дата: 25.06.04 14:27
Оценка:
Есть переменная
unsigned char temp;
temp=0x07d4;
нужно ее преобразовать в
temp=0x04;
, то есть фактически temp=2004
а нужно получить 4, т.е цифру года.
Как это можно сделать?
... << RSDN@Home 1.1.3 stable >>
Re: Как обнулить биты?
От: Кодт Россия  
Дата: 25.06.04 14:31
Оценка:
Здравствуйте, Tosha, Вы писали:

T>Есть переменная

T>unsigned char temp;
T>temp=0x07d4;
T>нужно ее преобразовать в
T>temp=0x04;
T>, то есть фактически temp=2004
T>а нужно получить 4, т.е цифру года.
T>Как это можно сделать?

Изучаем битовую арифметику. Операция &, в частности.
temp & 0xF -- на выходе — число, где все биты, кроме последних четырёх, обнулены.
temp &= 0xF -- записать результат откуда взяли.
Перекуём баги на фичи!
Re: Как обнулить биты?
От: Glоbus Украина  
Дата: 25.06.04 14:32
Оценка:
Здравствуйте, Tosha, Вы писали:

T>Есть переменная

T>unsigned char temp;
T>temp=0x07d4;
T>нужно ее преобразовать в
T>temp=0x04;
T>, то есть фактически temp=2004
T>а нужно получить 4, т.е цифру года.
T>Как это можно сделать?


unsigned int temp = 0x07d4;
temp &= 0x000f;
Удачи тебе, браток!
Re[2]: Как обнулить биты?
От: rus blood Россия  
Дата: 25.06.04 14:39
Оценка: 8 (2)
G>
G>unsigned int temp = 0x07d4;
G>temp &= 0x000f;

G>


А теперь еще раз смотрит вопрос и получаем

temp %= 10;
Имею скафандр — готов путешествовать!
Re[3]: Как обнулить биты?
От: rus blood Россия  
Дата: 25.06.04 14:41
Оценка: +1
RB>
RB>temp %= 100;
RB>
Имею скафандр — готов путешествовать!
Re[4]: Как обнулить биты?
От: VladFein США  
Дата: 25.06.04 22:49
Оценка: +1 :)
Здравствуйте, rus blood, Вы писали:


RB>>
RB>>temp %= 100;
RB>>


Теперь Вы слишком долго смотрели. %= 10; было лучше.
Re: Как обнулить биты?
От: Tosha Россия  
Дата: 27.06.04 19:13
Оценка:
Спасибо, выручили!
... << RSDN@Home 1.1.3 stable >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.