位运算(练习)

  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;
    */
    }
    }

最新文章

  1. js异步加载的3种方式(转载)
  2. WPF入门教程系列十六——WPF中的数据绑定(二)
  3. ztree插件的使用
  4. Time33算法
  5. Yii源码阅读笔记(二十七)
  6. AFNetworking 提示&quot;The resource could not be loaded because the App Transport Security policy requires the use of a secure connection&quot; 解决办法
  7. iOS开发-- 创建podspec文件,为自己的项目添加pod支持
  8. POJ 1191 棋盘分割(DP)
  9. 【转】iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势) -- 不错不错
  10. C# 数据实现设计模式
  11. NSRangeFromString(&lt;#NSString * _Nonnull aString#&gt;) 和rangeOfString
  12. Node.js v0.10.31API手冊-控制台
  13. Sqli-Labs学习总结一
  14. js网页判断移动终端浏览器版本信息是安卓还是苹果ios,判断在微信浏览器跳转不同页面,生成二维码
  15. python基础day1
  16. 学习MeteoInfo二次开发教程(十二)
  17. Python-HTML 最强标签分类
  18. IntellJ IDEA 2017 激活编译器配置,读取多个配置文件
  19. C++ 拷贝构造函数之const关键字
  20. 【Spring学习笔记-5】Spring中的抽象bean以及bean继承

热门文章

  1. mongodb connection refused because too many open connections: 819
  2. Unity Procedural Level Generator 基础总结与功能优化
  3. Python开发基础之Python常用的数据类型
  4. thinkphp5.0 模型的应用
  5. 微信jssdk遇到的一些问题汇总
  6. bootstrop日历
  7. python学习03字符串基本操作
  8. 从GC的SuppressFinalize方法带你深刻认识Finalize底层运行机制
  9. Cacti nagios zabbix 的区别
  10. php private学习笔记