К примеру есть число 0х113 (два байта) = 0b0000 0001 0001 0011.
Суть нужно запихнуть младшие три бита 011 в 5, 6, 7 биты регистра т.е (0b011* ****),
а остальные 0010 0010 присвоить старшему регистру.
Как правильно и грамотно это сделать. Сначала разложить на байты и сдвинуть? Есть варианты с указателями....
Что предпочтительнее?
unsigned int c = 0x113;
unsigned char temp_l, H, L = 15;
void main(void)
{
while (1) {
temp_l = c;
temp_l = (temp_l << 5);
L |= temp_l;
H = (c >> 3);
}
}
Вот так работает, но уверен можно написать красивее.
Последний раз редактировалось
Ljutyj Вт май 01, 2018 19:56:00, всего редактировалось 1 раз.