编写一个C语言函数
用于设置一个位数组中的某个指定位,将这些位打包到一个字节数数组中,其中每个字节含8位。该函数必须精确地带有两个参数:第一个是直接数组的名称,第二个事要设置的位的下标(从0...
用于设置一个位数组中的某个指定位,将这些位打包到一个字节数数组中,其中每个字节含8位。该函数必须精确地带有两个参数:第一个是直接数组的名称,第二个事要设置的位的下标(从0开始)。函数原形如下:
void setbit()BYTE8 bits[ ],int index;
函数原形如下:
void setbit(BYTE8 bits[ ],int index); 展开
void setbit()BYTE8 bits[ ],int index;
函数原形如下:
void setbit(BYTE8 bits[ ],int index); 展开
展开全部
typedef unsigned char BYTE8;
void setbit(BYTE8 bits[], int index)
{
int a = index>>3;/*计算字节数*/
int b = index&7;/*计算字节内的位数*/
BYTE8 mask=0x80;/*第一位是1的掩码*/
bits[a] |= (mask>>b);
}
PS:顺便写个取得某一个位是0还是1的函数。
int getbit(BYTE8 bits[], int index)
{
int a = index>>3;/*计算字节数*/
int b = index&7;/*计算字节内的位数*/
BYTE8 mask=0x80;/*第一位是1的掩码*/
return (bits[a] & (mask>>b))!=0;
}
void setbit(BYTE8 bits[], int index)
{
int a = index>>3;/*计算字节数*/
int b = index&7;/*计算字节内的位数*/
BYTE8 mask=0x80;/*第一位是1的掩码*/
bits[a] |= (mask>>b);
}
PS:顺便写个取得某一个位是0还是1的函数。
int getbit(BYTE8 bits[], int index)
{
int a = index>>3;/*计算字节数*/
int b = index&7;/*计算字节内的位数*/
BYTE8 mask=0x80;/*第一位是1的掩码*/
return (bits[a] & (mask>>b))!=0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询