70,020
社区成员




#include <limits.h>
void set_bit(char bit_array[], unsigned bit_number);
void clear_bit(char bit_array[], unsigned bit_number);
void assign_bit(char bit_array[], unsigned bit_number, int value);
int test_bit(char bit_array[], unsigned bit_number);
unsigned character_offset(unsigned bit_number);
unsigned bit_offset(unsigned bit_number);
void
set_bit(char bit_array[], unsigned bit_number)
{
bit_array[character_offset(bit_number)] |=
1 << bit_offset(bit_number);
}
void
clear_bit(char bit_array[], unsigned bit_number)
{
bit_array[character_offset(bit_number)] &=
~(1 << bit_offset(bit_number));
}
void
assign_bit(char bit_array[], unsigned bit_number, int value)
{
if (value != 0)
set_bit(bit_array, bit_number);
else
clear_bit(bit_array, bit_number);
}
int
test_bit(char bit_array[], unsigned bit_number)
{
return (
bit_array[character_offset(bit_number)]
& 1 << bit_offset(bit_number)
) != 0;
}
unsigned
character_offset(unsigned bit_number)
{
return bit_number / CHAR_BIT;
}
unsigned
bit_offset(unsigned bit_number)
{
return bit_number % CHAR_BIT;
}
void set_bit(char bit_array[], unsigned bit_number)
{
bit_array[bit_number - 1] = '1';
}
void clear_bit(char bit_array[], unsigned bit_number)
{
bit_array[bit_number - 1] = '0';
}
void assign_bit(char bit_array[], unsigned bit_number, int value)
{
if (value)
bit_array[bit_number - 1] = '1';
else
bit_array[bit_number - 1] = '0';
}
int test_bit(char bit_array[], unsigned bit_number)
{
return (bit_array[bit_number - 1] != '0');
}
void
set_bit(char bit_array[], unsigned bit_number)
{
bit_array[character_offset(bit_number)] |=
1 << bit_offset(bit_number);
}
把指定的bit位设置为1,如2个字节的字符数组
void
set_bit(char bit_array[], unsigned bit_number)
{
bit_array[character_offset(bit_number)] |=
1 << bit_offset(bit_number);
}
把指定的bit位设置为1,如2个字节的字符数组
void
set_bit(char bit_array[], unsigned bit_number)
{
bit_array[character_offset(bit_number)] |=
1 << bit_offset(bit_number);
}