c语言对特定位置0,置1

⌚Time: 2023-09-12 21:46:21

👨‍💻Author: Jack Ge

将特定位置1



//参数1 数值 参数2 要置1的位

void set_biti(int *num, int pos) {

    *num |= (1 << pos);

}

将特定位置0



//参数1 数值 参数2 要置0的位

void clear_biti(int *num, int pos) {

    *num &= ~(1 << pos);

}

测试代码


#include <stdio.h>

void set_biti(int *num, int pos) {

    *num |= (1 << pos);

}

void clear_biti(int *num, int pos) {

    *num &= ~(1 << pos);

}

void main(){

    int a = 0xA3E5;

    int b = 0x75CB;



    set_biti(&a,0);

    set_biti(&a,1);

    set_biti(&a,7);

    set_biti(&a,10);



    clear_biti(&b,2);

    clear_biti(&b,3);

    clear_biti(&b,4);

    clear_biti(&b,10);

    clear_biti(&b,13);



    printf("%04x %04x\n",a,b);

}

gcc t.c

a

a7e7 51c3

对照:


A3E5 1010001111100101

A7E7 1010011111100111

75CB 0111010111001011

51C3 0101000111000011