如何用位组成字节的问题!
如何给某个字节的位赋值?就是一个BYTE型的变量,如何赋值?
比如
BYTE A;
A=01010001?
A=00101102?
问题点数:20、回复次数:5Top
1 楼badguy2002(风一样的男孩)回复于 2003-12-01 18:49:47 得分 10
可以用&或|等位操作符啊
比如要给最低位赋1,可以A=|1Top
2 楼keiven()回复于 2003-12-02 00:36:11 得分 0
如楼上所说Top
3 楼smalltalk(老徐)回复于 2003-12-02 01:14:49 得分 10
如下函数:
#include <assert.h>
void setbit(BYTE *b, //point to a byte
int bitpos, //number of bit
int bitval ) // 0 or 1
{
assert(b);
assert(bitpos >= 0 && bitpos < sizeof(BYTE) * 8 );
assert(bitval == 0 || bitval ==1);
BYTE x = 1;
x = x << bitpos;
if (bitval == 1)
{
*b =*b | x;
}
else
{
x = ~x;
*b = *b & x;
}
}
Top
4 楼zhang_dq(虾米)回复于 2003-12-02 12:23:44 得分 0
那我怎么赋值等于5呢?
A |= 0101 ;好象不行!Top
5 楼flyback(墨羽)回复于 2003-12-02 12:29:52 得分 0
unsigned char A;// 8bits
A = 5;Top




