Мне нужно написать функцию setbits(x,p,n,y)
, которая возвращает x
с n
битами, которые начинаются в позиции p
, установленной в крайнее правое положение n
битов переменной без знака y
(оставляя другиебиты без изменений).
Например, если x = 10101010 (170 decimal)
и y = 10100111 (167 decimal)
и n = 3
и p = 6
говорят, что вам нужно убрать 3 бита y (111)
и поместить их в x
в положение 10xxx010
чтобы получить ответ 10111010
.
Эта функция должна распечатать результат в двоичном виде.
Вывод должен быть таким:
x = 10101010 (binary)
y = 10100111 (binary)
setbits n = 3, p = 6 gives x = 10111010 (binary)
Привет, янаткнулся на эту проблему в битовом поле.Как мне это сделать?
Typedef struct {
unsigned char x:8;
unsigned char y:8;
} var;