任意类型数的bit位操作

来源:互联网 发布:我心中的全面小康知乎 编辑:程序博客网 时间:2024/04/28 02:11
#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;}


原创粉丝点击