取反运算是什么意思?

乌漆抹黑2023-01-30  35

比如说byte类型的5,在内存中是00000101,按位取反后就是11111010

当你再次输出这个数时就变成了250

按位取反就是1变0,0变1

首先你要知道现在我们用的多数都是32位机,所以整形数都是4个字节

那么再看看按位取反的结果:

00000000 00000000 00000000 00000101 这是5

00000000 00000000 00000000 00000000 这是0

11111111 11111111 11111111 11111111 这是-1

11111111 11111111 11111111 11111110 这是-2

11111111 11111111 11111111 11111101 这是-3

11111111 11111111 11111111 11111100 这是-4

11111111 11111111 11111111 11111011 这是-5

11111111 11111111 11111111 11111010 这是5取反的结果-6

运算符"!"是逻辑非运算符;"~"才是按位取反运算符。

经过"!"运算后,运算结果只有0或1;而经过"~"运算后,结果有多种,取决于操作数。

下面通过实例来介绍这个运算符的使用方法:

int a=10, b, c

b = !a   // 运算后b=0,因为a不等于0(即为真),所以取非后等于0(为假)

c = ~a   // 运算后c=5,因为a的二进制位1010,按位取反后变为0101(即等于5)


转载请注明原文地址:https://juke.outofmemory.cn/read/2832420.html

最新回复(0)