首页 > 编程语言 >Java 位运算的解读 & | ^ ~ << >>

Java 位运算的解读 & | ^ ~ << >>

时间:2023-10-08 12:12:41浏览次数:31  
标签:Java 运算 int 0101 System 解读 二进制 println out

Java中的位运算包括以下几种:

  按位与(&):对应位上,如果两个数都是1,则结果为1,否则为0。

    int a = 3; // 二进制 0011
    int b = 5; // 二进制 0101
               //    0001 = 1
    System.out.println("a & b = " + (a & b));

  按位或(|):对应位上,如果两个数有一个为1,则结果为1,否则为0。

        int a = 3; // 二进制 0011
        int b = 5; // 二进制 0101
                    //       0111 = 7
        System.out.println("a | b = " + (a | b));

  按位异或(^):对应位上,如果两个数不相同,则结果为1,否则为0。

        int a = 3; // 二进制 0011
        int b = 5; // 二进制 0101
                    //      0110 = 6
        System.out.println("a ^ b = " + (a ^ b));

  按位取反(~):对每一位,将0变为1,将1变为0。

        // ~ 的运算规则:
        // ~0 = -1
        // ~1 = -2
        // ~2 = -3
        // ~3 = -4
        // 因此,~3 = 1100 = -4
        int a = 3; // 二进制 0011
                    //      1100 = -4
        // a + ~a = -1  ,等于 1111 
        // 1111 + 1 = 0000 = 0
        System.out.println("~a= " + (~a));        

   左移(<<):将二进制数向左移动指定位数,右边用0填充。

        int b = 5; // 二进制 0101
                    //      1010 = 10   b << 1
                    //     10100 = 20   b << 2
        System.out.println("b << 2 " + (b << 1));        

  右移(>>):将二进制数向右移动指定位数,左边用符号位填充。

        int b = 5; // 二进制 0101
                    //      0010 = 2   b >> 1
                    //      0001 = 1   b >> 2
        System.out.println("b >> 2 " + (b >> 2));

标签:Java,运算,int,0101,System,解读,二进制,println,out
From: https://www.cnblogs.com/kuangmeng/p/17748463.html

相关文章

  • 94基于java的智能物流管理系统设计与实现(含配套lun文,可参考做毕设)
    本章节给大家带来一个基于java智能物流管理系统设计与实现,可适用于校园物流管理系统,物流配送系统,快递物流管理,物流追踪系统,物流系统,物流运输系统,javaweb物流系统,springboot物流管理系统,javaweb智能物流系统等等;项目背景随着互联网技术的快速发展,网络时代的到来,网络信息也将会......
  • 94基于java的智能物流管理系统设计与实现(含配套lun文,可参考做bi设)
    本章节给大家带来一个基于java智能物流管理系统设计与实现,可适用于校园物流管理系统,物流配送系统,快递物流管理,物流追踪系统,物流系统,物流运输系统,javaweb物流系统,springboot物流管理系统,javaweb智能物流系统等等;项目背景随着互联网技术的快速发展,网络时代的到来,网络信息也将会......
  • Maven 引用CDH 5.4 的zookeeper时报错:Could not find artifact javax.jms:jms:jar:1.1
    错误:Couldnotfindartifactjavax.jms:jms:jar:1.1incloudera由于默认5.4.0的包引用了zookeeper3.3.1版本,进而引用了log4j的某个版本,导致的报错,改为如下即可: pom:使用cloudera的源:<repositories><repository><id>cloudera</id><u......
  • JAVA工作日志
    你好我好大家好,今天带大家一起完成工作日志这个模块,每天努力一点点,将来成就一大步。首先我们先来完成提交统计这一块,从图中可以看出来我们需要日志的类型和统计值,统计值又包括应提交数和已提交数。我们来定义一个类用来展示。 编写逻辑代码,注意红色字体提醒!!! 这个时候我们......
  • Java设计模式之策略模式
    1.1 概述先看下面的图片,我们去旅游选择出行模式有很多种,可以骑自行车、可以坐汽车、可以坐火车、可以坐飞机 作为一个程序猿,开发需要选择一款开发工具,当然可以进行代码开发的工具有很多,可以选择Idea进行开发,也可以使用eclipse进行开发,也可以使用其他的一些开发工具。定......
  • 如何利用动态配置中心在JavaAgent中实现微服务的多样化治理
    本文分享自华为云社区《如何利用动态配置中心在JavaAgent中实现微服务的多样化治理》,作者:华为云开源。  一、前言随着JavaAgent在微服务治理方面的广泛应用和发展,我们可以在运行时对微服务进行监控、管理和调整,以满足不同的业务需求和运行环境。然而,随着微服务架构的复杂性增加,......
  • Java技术入门指南
    Java是一种广泛使用的编程语言,具有简单易学、跨平台、高效稳定等特点,被广泛应用于Web开发、移动应用开发、大数据处理等领域。本文将介绍Java的基本概念、语法和常用技术,帮助初学者快速入门。Java的基本概念Java是一种面向对象的编程语言,它的核心概念是类和对象。类是一种抽象......
  • 转:Java安全漏洞:Druid未授权访问解决
    Java安全漏洞:Druid未授权访问解决 1.设置账号密码2.禁用durid ......
  • Java中String字符串的用法
    1.类String是java.lang包下的类,所以不需要导包就可以直接使用。String类代表字符串。Java程序中的所有字符串字面值(如"abc")都作为此类的实例实现。  字符串是常量;它们的值在创建之后不能更改。StringBuffer(字符串缓冲区)支持可变的字符串。因为String对象是不可变的,所......
  • 高效数据管理:Java助力实现Excel数据验证
    摘要:本文由葡萄城技术团队原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。前言在Java中,开发者可以使用一些开源的库(如ApachePOI)来添加、修改和处理Excel中的数据:包括数字、文本、日期、列表等。每种数据验证类型都具有不......