"~"在C语言中是什么意思
发布网友
发布时间:2022-04-22 07:38
我来回答
共4个回答
热心网友
时间:2022-06-17 21:23
是按二进制的位取反,即二进制各位是1的变为0,是0的变为1。
例如,整数型的数据,大多数C编译系统中都是规定用16位二进制表示。所以如果写
~12345
就应该如下计算:
整数12345的二进制形式是0011000000111001,
故~12345的二进制形式是1100111111000110,等于十进制数53190。
补充一点:
我这里说“等于十进制数53190”,是假设这个数据是“无符号整数”即unsigned int型的。
假如不是“无符号”的而是“有符号”的int型,那么十进制数53190就已经溢出了。按照有符号数的“补码表示规则”,二进制的1100111111000110将被看作负数,即十进制的-12346。
这已经牵涉到另一个问题了。
总之,
对unsigned int型:~12345等于53190;
对于int型:~12345等于-12346。
热心网友
时间:2022-06-17 21:23
前置运算符,对后续的对象按位取反。
热心网友
时间:2022-06-17 21:24
取反,就是相反的意思
热心网友
时间:2022-06-17 21:24
按位取反,如~1011为
0100