|
可是根据它提供的程序,char_offset表明存储在bit_array数组中的只能是一个位代表一个字符
无法实现直接对位的操作啊!
void set_bit(char bit_array[],unsigned bit_number)
{
bit_array[char_offset(bit_number)]|=
1<
}- unsigned char_offset(unsigned bit_number)
- {
- return bit_number/CHAR_BIT; //提高可移植性,使程序不依赖于机器
- }
- unsigned bit_offset(unsigned bit_number)
- {
- return bit_number%CHAR_BIT;
- }
复制代码 例如:在主函数中调用- int main(int argc, char* argv[])
- {
- char a[]="10010";
- set_bit(a,3);
- printf("%s",a);
- return 0;
- }
复制代码 会输出 90010,就是对要操作位在内存中的字节操作;
那怎样才能输出10110呢?
[ 本帖最后由 yaoyong 于 2012-9-7 22:36 编辑 ]
|
|