JAVA_位取反运算符~

Posted LastCoder

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA_位取反运算符~相关的知识,希望对你有一定的参考价值。

位取反运算符会将目标数的补码的各位取反。

~正数的流程:1. 首先十进制数会被转化为二进制补码的形式;

                       2. 然后上一步得到的二进制补码的各位取反(~发挥作用);

                       3. 上一步得到的二进制数-1,然后取反,得到目标值(这个目标值是指~正数这个负数)的绝对值的补码;

                       4. 上一步的补码转化为十进制正数,然后+负号,就得到了目标值。

~负数的流程: 1. 首先将负数的绝对值转化为二进制补码的形式;

                           2. 将上一步得到的二进制补码的各位取反再+1,得到负数的二进制补码;

                           3. 将上一步得到的负数的二进制补码的各位取反(~发挥作用);

                           4. 上一步得到的二进制序列转化为十进制就是目标值。

 

以上是关于JAVA_位取反运算符~的主要内容,如果未能解决你的问题,请参考以下文章

C#'~'按位取反运算符的使用

Java位运算:位异或运算位与运算位或运算位取反运算左位移运算右位移运算无符号右移运算不用额外变量交换两个整数的值(使用位异或运算)

按位取反运算符与补码

Java位运算:位异或运算位与运算位或运算位取反运算左位移运算右位移运算无符号右移运算不用额外变量交换两个整数的值(使用位异或运算)只出现一次的数字

Java位运算:位异或运算位与运算位或运算位取反运算左位移运算右位移运算无符号右移运算不用额外变量交换两个整数的值(使用位异或运算)只出现一次的数字

复习一个小知识点(反码与按位取反)