Java中~运算符的含义及说明

 更新时间:2025年11月13日 09:47:44   作者:未来的资深Java架构师  
Java中的~运算符表示非运算符,即将该数的所有二进制位全取反,但得到的是补码形式,需要将其转换为反码和原码才能得到最终的十进制结果

Java中~运算符的含义

今天参加了笔试,遇见了一道非常有意思的题,以前从来没注意过 ~ 在Java中的含义,

如下:

public class haha {
    public static void main(String[] args) {
        int a = 10;
        System.out.println(~a);
    }
}

首先我们需要知道

  • 正数原码 = 反码 = 补码
  • 负数反码 = 原码符号位不变,其它位全取反负数补码 = 反码 + 1

1、首先~表示非运算符,就是将该数的所有二进制位全取反。但又由于计算机中是以补码的形式存储的,所以0 1010全取反是1 0101(只是补码形式,还需要转成原码)。

2、此时得到的1 0101只是补码,我们需要将它先转为反码,反码 = 补码-1,得到反码为1 0100

3、我们得到反码后,将它转为原码,原码 = 反码符号位不变,其它位全取反,得到最终的原码为1 1011,转化为十进制就是-11。

小结:

只需要记住一个公式即可,永远都不会错哟

(~x) = -(x + 1)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 通过JVM参数来优化垃圾回收性能方式

    通过JVM参数来优化垃圾回收性能方式

    这篇文章主要介绍了通过JVM参数来优化垃圾回收性能方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-07-07
  • idea直接修改新的git地址的方法(图文)

    idea直接修改新的git地址的方法(图文)

    这篇文章主要介绍了idea直接修改新的git地址的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • java限流算法详细

    java限流算法详细

    这篇文章详细的介绍了java限流算法常用到的算法计数算法、漏桶算法、令牌桶等算法的相关资料,需要的朋友可以参考下文,希望本篇文章能帮助到您
    2021-09-09
  • SpringBoot自定义动态数据源的流程步骤

    SpringBoot自定义动态数据源的流程步骤

    动态数据源,本质上是把多个数据源存储在一个 Map 中,当需要使用某一个数据源时,使用 key 获取指定数据源进行处理,本文将给大家介绍一下SpringBoot自定义动态数据源的流程步骤,需要的朋友可以参考下
    2024-06-06
  • Java实现批量下载文件的示例代码

    Java实现批量下载文件的示例代码

    这篇文章主要为大家详细介绍了Java如何实现批量下载文件,并以压缩输出流的形式返回前端,文中的示例代码讲解详细,需要的小伙伴可以参考一下
    2023-10-10
  • Java工厂模式之简单工厂,工厂方法,抽象工厂模式详解

    Java工厂模式之简单工厂,工厂方法,抽象工厂模式详解

    这篇文章主要为大家详细介绍了Java工厂模式之简单工厂、工厂方法、抽象工厂模式,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • 友盟 微信第三方登录示例

    友盟 微信第三方登录示例

    这篇文章主要介绍了友盟 微信第三方登录示例的相关资料,需要的朋友可以参考下
    2016-10-10
  • 详解lambda表达式foreach性能分析

    详解lambda表达式foreach性能分析

    这篇文章主要介绍了详解lambda表达式foreach性能分析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Java中的notyfy()和notifyAll()的本质区别

    Java中的notyfy()和notifyAll()的本质区别

    很多朋友对java中的notyfy()和notifyAll()的本质区别不了解,今天小编抽空给大家整理一篇教程关于Java中的notyfy()和notifyAll()的本质区别,需要的朋友参考下吧
    2017-02-02
  • Java进阶之高并发核心Selector详解

    Java进阶之高并发核心Selector详解

    前几篇文章介绍了Java高并发的一些基础内容,认识了Channel,Buffer和Selector的基本用法,有了感性认识之后,来看看Selector的底层是如何实现的。,需要的朋友可以参考下
    2021-05-05

最新评论