C基础语法2

阅读 23

2024-09-20

C基础语法2

按位与&

  • 语法特点:和1按位与保持不变,和0按位与清0
  • 应用场景:将指定位置 0
  	int data = 127;//指定第三位第五位清0
  	//data=data&1101 0111;
    data = data & 0xd7;
    printf("%#x\n", data);

按位或|

  • 语法特点:有1为1,全0为0
  • 应用场景:将指定位置 1

按位取反~

按位取反 0变1 1变0

按位异或^

  • 基本语法:相同为0 不同为1
  • 语法特点:和0异或保持不变 和1异或取反
  • 应用场景:将置定位取反

右移左移

不同编译器的右移情况不同

	// 1000 0000 0000 0000 0000 0000 0000 0110
    // 1111 1111 1111 1111 1111 1111  1111 1001
    // 1111 1111 1111 1111 1111 1111  1111 1010
    // 算术右移补1  1111 1111 1111 1111 1111 1111 1111 1111   0xffffffff
    // 逻辑右移补0 0000 0000 0000 0000 1111 1111 1111 1111 0xffff
    int data = -10;
    data = data >> 16;
    if (data == 0xffffffff)
    {
        printf("算术右移%#x\n", data);
    }
    else if (data == 0xffff)
    {
        printf("逻辑右移%#x\n", data);
    }
    

精彩评论(0)

0 0 举报