#include<stdio.h>
#include<limits.h>
void set_bit(char bit_array[],unsigned int bit_number);
void clear_bit(char bit_array[],unsigned int bit_number);
void assign_bit(char bit_array[],unsigned int bit_number,int value);
int test_bit(char bit_array[],unsigned int bit_number);
int main(){
char arr[]="abcdefg";
puts(arr);
puts(test_bit(arr,0)?"It's 1\n":"It's 0\n");
clear_bit(arr,0);
puts(arr);
puts(test_bit(arr,0)?"It's 1\n":"It's 0\n");
return 0;}
//
void set_bit(char bit_array[],unsigned int bit_number){
bit_array[bit_number/CHAR_BIT]|=1<<bit_number%CHAR_BIT;
}
void clear_bit(char bit_array[],unsigned int bit_number){
bit_array[bit_number/CHAR_BIT]&=~(1<<bit_number%CHAR_BIT);
}
void assign_bit(char bit_array[],unsigned int bit_number,int value){
if(value) bit_array[bit_number/CHAR_BIT]|=1<<bit_number%CHAR_BIT;
else bit_array[bit_number/CHAR_BIT]&=~(1<<bit_number%CHAR_BIT);
}
int test_bit(char bit_array[],unsigned int bit_number){
return bit_array[bit_number/CHAR_BIT]>>bit_number%CHAR_BIT&1;
}
5.9.4-PointersOnC-20220128
于 2022-01-28 13:59:09 首次发布