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)

上一篇下一篇

猜你喜欢

热点阅读