Math.abs(~10)

2017-06-14  本文已影响0人  这很重要吗

以Math.abs(~10)为例
10在计算机中是32位的,所以10的二进制是
00000000 00000000 00000000 00001010
~10在计算机中是10取反码,为
11111111 11111111 11111111 11110101 ,符号位为1所以~10是负数,
因为负数在计算机中是以正值的补码存在,正值的补码是
正值是:10再取反就是~10,取反符号为是不变的:
10000000 00000000 00000000 00001010 正值求出来后,求补码,+1即可
所以是10000000 00000000 00000000 00001011,所以就是-11,
所以Math.abs(~10)=Math.abs(-11),所以为11
同理Math.abs(~2018)=Math.abs(-2019),所以为2019

由此我们可以看出规律:“~x”的结果为“-(x+1)”
所以“~2018”就等于“-2019”,Math.abs(-2019)即2019!!

上一篇下一篇

猜你喜欢

热点阅读