#include <stdio.h>
typedef int type;
void binary_type(type number, int binary[])
{
int len = 8 * sizeof(type);
int k = len -1;
int j = 0;
for(; k>= 0; k--)
{
binary[j++] = ((number >> k) & 1);
}
// binary[j] = '\0';
}
void bin_out(type number)
{
int len = 8 * sizeof(type);
int k = len -1;
printf("%d binary : ",number);
for(; k>= 0; k--)
{
printf("%d", ((number >> k) & 1));
}
printf("\n");
}
void bit_set(type *p, int num)
{
*p = (*p) | (1 << (num - 1));
}
void bit_zero(type *p, int num)
{
*p = (*p) & (~(1 << (num - 1)));
}
void bit_save(type *p, int num)
{
*p = (*p) & (1 << ( num - 1));
}
int main(void)
{
type i = 65535;
int number[100];
binary_type(i, number);
bin_out(i);
is_set(&i, 3);
bin_out(i);
printf("\n");
return 0;
}
任意类型数的bit位操作
最新推荐文章于 2022-06-28 19:49:33 发布