我必须编写一个函数setbits(x,p,n,y)
,该函数返回从位置开始x
的n
位,该位置设置为unsigned char 变量的p
最右侧位(其他位保持不变)。n
y
例如,如果x = 10101010 (170 decimal)
and y = 10100111 (167 decimal)
and n = 3
andp = 6
说 then 你需要去掉 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;