位运算(练习)

  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. centos 部署 vue项目

    安装Nodejs 下载安装包,可选择其他版本 node-v10.16.0-linux-x64.tar.xz 将下载文件上传至linux服务器并解压 tar -xvf node-v10.16.0-lin ...

  2. MySQL之视图、触发器、函数、存储过程、索引

    1.视图 把某个查询语句(临时表)设置别名,日后方便使用,视图是虚拟的(不要在数据库里使用视图) #创建: create view v1(视图名称) as SQL #修改: alter view v1 ...

  3. ES6中对函数的扩展

    ES6一路扩展,字符串.数组.数值.对象无一“幸免”,ES6说要雨露均沾,函数也不能落下,今天,就来讲解ES6对函数的扩展. 参数的默认值 在开发中,给函数的参数指定默认值,是很普遍很常见的一个需求, ...

  4. php-fpm运行原理

    来源:https://blog.csdn.net/sinat_38804294/article/details/94393621 一.php-fpm由来1.cgi (common gateway in ...

  5. Openstack Keystone V3 利用 curl 命令获取 token

    curl -i \ -H "Content-Type: application/json" \ -d ' { "auth": { "identity& ...

  6. 二进制安装MySQL及破解密码

    二进制安装MySQL及破解密码 1.确保系统中有依赖的libaio 软件,如果没有: yum -y install libaio 2.解压二进制MySQL软件包 tar xf mysql-5.7.24 ...

  7. springmvc @ResponseBody HttpMediaTypeNotAcceptableException

    2019独角兽企业重金招聘Python工程师标准>>> [ERROR]org.springframework.web.HttpMediaTypeNotAcceptableExcept ...

  8. android自定义View&自定义ViewGroup(上)

    一般自定义view需要重写的方法 void onMeasure(int widthMeasureSpec, int heightMeasureSpec) void onSizeChanged(int ...

  9. 通用权限管理系统组件 (GPM - General Permissions Manager)

    有的公司开发人员只那么几个,一个人支撑整个公司所有的IT系统实在有点累,不想自己写权限系统了,自己琢磨不也是要花时间和精力,要为此付出多少时间和汗水阿,细细的皱纹不知要多多少呢,重复建设不是白白浪费生 ...

  10. xml出现Exception in thread "main" java.lang.NullPointerException

    运行代码出现Exception in thread "main" java.lang.NullPointerException 可以看下这个链接:https://ask.csdn. ...