当前位置: C语言 -- 标准库 -- <iso646.h> -- compl

compl宏


概要:

#define compl ~


描述:

该宏是位运算符~(按位取反)的替代拼写方案。

compl a

就是将a各个位上的数字取反,即0变成11变成0


范例:
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
/*宏compl范例*/

#include <iso646.h>
#include <stdio.h>

int main(void)
{
    printf("%d\n", (compl 1));
    printf("%u\n", (compl 1));

    return 0;
}


输出:

-2

4294967294

整数是以补码形式存储的,整数1的存储形式为0000 0000 0000 0000 0000 0000 0000 0001(compl 1)得到的数值存储形式为1111 1111 1111 1111 1111 1111 1111 1110。对于有符号整数,最高位是符号位,其余位是数值位,所以%d对应的值为-2。对于无符号整数,所有位都是数值位,所以%u对应的值为4294967294,即232-2


相关内容:
bitand 表示&的宏。
bitor 表示|的宏。
xor 表示^的宏。