比如说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, cb = !a // 运算后b=0,因为a不等于0(即为真),所以取非后等于0(为假)
c = ~a // 运算后c=5,因为a的二进制位1010,按位取反后变为0101(即等于5)
1.运算符&amp。
2.#34。
3.!&amp。
4.#34。
5.是逻辑非运算符。
6.&amp。
7.#34。
8.~&amp。
9.#34。
10.才是按位取反运算符。
11.经过&amp。
12.#34。
13.!&amp。
14.#34。
15.运算后,运算结果只有0或1。
16.而经过&amp。
17.#34。
18.~&amp。
19.#34。
20.运算后,结果有多种,取决于 *** 作数。
21.下面通过实例来介绍这个运算符的使用方法:int?a=10,?b,?c。
22.b?=?!a。
23.???//?运算后b=0,因为a不等于0(即为真),所以取非后等于0(为假)c?=?~a。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)