位数组 帮忙改一下 这个代码怎么才能实现具体位的置1(c和指针的一道题)
程序代码:#include <stdio.h>
#include <limits.h>
unsigned character_offset( unsigned bit_number )
{
int c1=bit_number / CHAR_BIT;
return c1; //计算bit_number第几个字节内
}
unsigned bit_offset( unsigned bit_number )
{
int j=bit_number % CHAR_BIT;
return j; //计算bit_number 在最高字节里是第几位
}
void set_bit( char bit_array[], unsigned bit_number ) //把指定的位设置为 1
{
printf("char %c\n",bit_array[character_offset(bit_number)]);
printf("int %d\n",bit_array[character_offset(bit_number)]);
bit_array[ character_offset(bit_number) ] |=
( 1 << bit_offset(bit_number) );
printf("char %c\n",bit_array[character_offset(bit_number)]);
printf("int %d\n",bit_array[character_offset(bit_number)]);
}
int main()
{
char a[20] = "10001100001";
printf("int a[0]=%d\nchar a[0]=%c\n",a[0],a[0]);
printf("CHAR_BIT: %d\n",CHAR_BIT);
set_bit(a, 10);
printf( "%s\n",a );
return 0;
}



