Java中的非运算~
2020-11-11 本文已影响0人
笔头还没烂
涉及到的概念:原码、补码
涉及到的公式: (1)正数的原码 = 补码;(2)负数的 补码 = ( 原码 - 1 )再取反
例如:5
原码是:00000000 00000000 00000000 00000101
补码是:00000000 00000000 00000000 00000101(计算机内存储)
例如:-5
5的原码是:00000000 00000000 00000000 00000101
-5的补码是: 11111111 11111111 11111111 11111011(减1取反)
知道怎么求补码之后,非运算是在算出补码的基础上,将补码转成原码,即高位不变,取反加1(与求补码的过程相反)。
例如:求 ~10
10的原码:00000000 00000000 00000000 00001010
~10的补码:11111111 11111111 11111111 11110101(直接取反即可)
~10的原码:10000000 00000000 00000000 00001011(高位不变,取反加1)