首页 > 编程语言 >Java基础语法 位运算符

Java基础语法 位运算符

时间:2022-09-25 22:44:27浏览次数:56  
标签:右移 语法 Java 运算符 整型 每向

定义

image-20220925221143732

结论:
1.位运算符操作的都是整型的数据
2.<< :在一定范围内,每向左移1位,相当于 * 2
3.>> :在一定范围内,每向右移1位,相当于 / 2

image-20220925221639600

package BasicGrammar.day03;
/*
运算符之五:位运算符 (了解)

结论:
1. 位运算符操作的都是整型的数据
2. << :在一定范围内,每向左移1位,相当于 * 2
   >> :在一定范围内,每向右移1位,相当于 / 2



面试题:最高效方式的计算2 * 8 ?  2 << 3  或 8 << 1
*/
public class BieTest {
    public static void main(String[] args) {
        int i = 21;
        i = -21;
        System.out.println("i << 2 :" + (i << 2));
        System.out.println("i << 3 :" + (i << 3));
        System.out.println("i << 27 :" + (i << 27));

        int m = 12;
        int n = 5;
        System.out.println("m & n :" + (m & n));
        System.out.println("m | n :" + (m | n));
        System.out.println("m ^ n :" + (m ^ n));

        //练习:交换两个变量的值
        int num1 = 10;
        int num2 = 20;
        System.out.println("num1 = " + num1 + ",num2 = " + num2);

        //方式一:定义临时变量的方式
        //推荐的方式
        int temp = num1;
        num1 = num2;
        num2 = temp;

        //方式二:好处:不用定义临时变量  
        //弊端:① 相加操作可能超出存储范围 ② 有局限性:只能适用于数值类型
        //num1 = num1 + num2;
        //num2 = num1 - num2;
        //num1 = num1 - num2;

        //方式三:使用位运算符
        //有局限性:只能适用于数值类型
        //num1 = num1 ^ num2;
        //num2 = num1 ^ num2;
        //num1 = num1 ^ num2;

        System.out.println("num1 = " + num1 + ",num2 = " + num2);

    }
}

参考运算图

image-20220925221923460

标签:右移,语法,Java,运算符,整型,每向
From: https://www.cnblogs.com/ljgjava/p/16729273.html

相关文章

  • Java8Stream流
    Stream流呢,以前我也有所了解,像一些面试题中也出现过,Java8的新特性,有一块就是这个Stream操作集合,而且在看一些项目中也使用的比较多。但总感觉自己学的一知半解,所以今天打......
  • 《JavaScript高级程序设计》Chapter03学习笔记
    Chapter03JavaScriptLanguageSyntax类C区分大小写,标识符可以字母、下划线(_)、美元符号($)开头语句以分号(;)结尾:虽然不加分号也是被允许的,但会导致性能的降......
  • Java程序运行机制
    Java程序运行机制编译型解释型javac>源文件(.java文件)>java编译器>字节码(.class文件)>类装载器字节码校验器(检查代码是否有错)>解释器>操作系统平台......
  • Java 泛型程序设计
    1.  泛型类publicclassPair<T>{privateTfirst;privateTsecond;publicvoidsetSecond(Tsecond){...}....}2.  泛型方法classArrAl......
  • Java: Iterator/Cursor Patterns
    /***版权所有2022涂聚文有限公司*许可信息查看:*描述:*迭代器模式Iterator/CursorPatterns*历史版本:JDK14.02*2022-09-12创建者geovindu*2022......
  • java帝国的诞生—旷日持久的战争
    C语音帝国:C,C++1972年C诞生特点:贴近硬件,运行极快,效率极高开发:操作系统,编译器,网络系统等枷锁:指针和内存管理1982年C++诞生功能:面向对象以及兼容C成功:图形领域,游......
  • JavaScript权威指南中文-第五版 pdf
    高清扫描版下载链接:https://pan.baidu.com/s/1IZ0TCpQdsYR4YT5mQSj_8w点击这里获取提取码 ......
  • C# 二十年语法变迁之 C# 2,C# 3 ,C# 4参考
    C#二十年语法变迁之C#2,C#3,C#4参考https://benbowen.blog/post/two_decades_of_csharp_i/自从C#于2000年推出以来,该语言的规模已经大大增加,我不确定任何人是......
  • 打印九九乘法表,打印金字塔-java
    /***********打印如图金字塔*=i*2-1(竖)空格数=列数-1*/publicclassCirculate{ publicstaticvoidmain(String[]args){ intcount=3; for(inti=......
  • 打印菱形-java
    publicclassWeekendDemo01{/** 打印菱形************* ******/ publicstaticvoidmain(String[]args){ intbianchang;//记录边长......