位运算(练习)

  1. 最有效率的方式算出 2乘以 8等于几

    2 << 3 = 2 * 2^3 = 2 * 8 = 16

  2. 对于两个整数变量的值进行互换(不需要第三方变量)

    class Test
    {
    public static void main(String[] args)
    {
    int n = 3, m = 4;
    System.out.println("n = "+n+ ", m = "+m); //1、通过定义第三方变量来实现
    int temp;
    temp = n;
    n = m;
    m = temp;
    System.out.println("n = "+n+ ", m = "+m); //2-1、不借助第三方变量实现
    n = n + m; // n = 3 + 4 = 7;
    m = n - m; // m = 7 - 4 = 3;
    n = n - m; // n = 7 - 3 = 4;
    System.out.println("n = "+n+ ", m = "+m);
    //这种方法有局限性,如果n和m的值比较大,相加容易超出 int范围,造成损失精度 //2-2、不借助三方变量实现
    n = n ^ m; //此时 n =(n ^ m)
    m = n ^ m; // m = (n ^ m) ^ m == n = 3; n = m ^ n; // n = n ^ m == n ^ (n ^ m);
    System.out.println("n = "+n+ ", m = "+m);
    //这种方式属于技巧性 /*
    或者直接打印:
    System.out.println("n = "+m+ ", m = "+n);
    ……
    */
    }
    }

    获取60的最低4位,通过 60 & 15;

    class Text
    {
    public static void main(String[] args)
    {
    int num = 60;
    int n1 = num & 15; System.out.println((char) (n1 - 10 + 'A')); //要获取下一组四位,将 60 右移 4 位
    int temp = 60 >> 4; //对temp的值进行最低4位的获取
    int n2 = temp & 15;
    System.out.println( n2 );
    /*
    0 — 9 'A' 'B' 'C' 'D' 'E' 'F'
    65 66 67
    10 11 12 13 14 15
    12 - 10 = 2 + 'A' = (char)67;
    */
    }
    }

黑马程序员_毕向东_Java基础视频教程——位运算练习(随笔)的更多相关文章

  1. 黑马程序员_毕向东_Java基础视频教程——位运算符(随笔)

    位运算符 左移和右移 左移 左移越移越大. 往左移几位就相当于这个数乘于2的几次方 3 << 2 --> 3 * 2^2 = 3 * 4 = 12 3 << 3 --&g ...

  2. 黑马程序员_毕向东_Java基础视频教程——三元运算符(随笔)

    三元运算符:三个元素参与运算的符号 [三元运算符:简略版的 if(){} else() {}语句] class Text { public static void main(String[] args ...

  3. 黑马程序员_毕向东_Java基础视频教程——进制(随笔)

    进制的特点 进制的由来 任何数据在计算机中都是以二进制的形式存在.二进制最早由电信号演变而来. 一个整数在内存中一样也是二进制,但是使用一大串的0 1组成的二进制数进行使用很麻烦所以就想把一大串缩短点 ...

  4. 黑马程序员_毕向东_Java基础视频教程——java语言组成部分(随笔)

    java语言组成部分 Java是一种强类型语言,所谓强类型语言就是对具体的数据进行不同的定义.对类型的划分的十分细致,对内存中分配了不同大小的内u你空间 关键字 标识符 注释 变量和常量 运算符 语句 ...

  5. 黑马程序员_毕向东_Java基础视频教程——if 语句(单条语句)(随笔)

    if 语句(单条语句) 格式(三种) [注意]:如果 if 控制的语句只有一条,则 这个 { } 括号可以不写 if (条件表达式) { 执行语句; } class Test{ public stat ...

  6. 黑马程序员_毕向东_Java基础视频教程——逻辑运算符(随笔)

    逻辑运算符 逻辑运算符用于连接 boolean 型的表达式 & : 只要两边都是 boolean 表达结果,有一个为 false ,则结果就是 false 只要两边都为 true 则结果就为 ...

  7. 黑马程序员_毕向东_Java基础视频教程——赋值(随笔)

    赋值 class Test{ public static void main(String[] args) { int i = 3; // += -= *= /= %= 它们凑一块成为一个运算符 x ...

  8. 黑马程序员_毕向东_Java基础视频教程——转义字符(随笔)

    转义字符 转义字符 通过 \ 来转变后面的字母或符号的含义 \n :换行 \b :退格.相当于 backspace \r : 相当于回车键. Windows系统中,回车是由两个字符来表示 \r \n. ...

  9. 黑马程序员_毕向东_Java基础视频教程——算术运算符小点(随笔)

    算术运算符小点 ​ 取模 class Test{ public static void main(String[] args){ System.out.println( 1 % -5); System ...

随机推荐

  1. react: typescript system params optimize

    1.system-params-service import paramCache from "../common/param-cache" import RequestPromi ...

  2. orcale 树形结构查询

    接到需求是要在一个表中(表结构为主键id和父id)循环显示数据,类似于省市县++这种情况  也可能不只有三级子菜单 id  name   parentid 1     a          0 2  ...

  3. TensorFlow-keras 100分类

    import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' from tensorflow.python.keras.datasets import cifa ...

  4. php sprintf() 函数把格式化的字符串写入一个变量中。

    来源:https://blog.csdn.net/zxh1220/article/details/79709207 HP sprintf() 函数用到的参数 printf — 输出格式化字符串 spr ...

  5. kubernetes1.30集群部署+dashboard+heapster

    v2.1 1.系统配置 1.1.禁用防火墙.禁用selinux #防火墙禁用 systemctl stop firewalld systemctl disable firewalld #SELinux ...

  6. 2019-2020-1 20199329《Linux内核原理与分析》第三周作业

    <Linux内核原理与分析>第三周作业 一.上周问题总结: 第二周头脑风暴完成较慢 虚拟机libc配置错误 书本知识使用不够熟练 二.本周学习内容: 1.实验楼环境虚拟一个x86的CPU硬 ...

  7. mybatis 批量保存,并且唯一约束

    1.主键返回在insert配置中添加两个属性 useGeneratedKeys="true" keyProperty="id" 2.唯一约束冲突可以使用 ON ...

  8. codeforce 272B Dima and Sequence

    B. Dima and Sequence Dima got into number sequences. Now he's got sequence a1, a2, ..., an, consisti ...

  9. Java——Spring依赖配置详解

    <properties> <junit.version>4.12</junit.version> <spring.version>4.3.9.RELEA ...

  10. 支付宝小程序serverless---获取用户信息(头像)并保存到云数据库

    支付宝小程序serverless---获取用户信息(头像)并保存到云数据库 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 我又 ...