[编织消息框架][设计协议]位运算

常用位运算符号

上节介绍bit基础,这节课介绍bit常用基本运算

为什么要使用 | & % ~ 这几种常见的运算?

如果你理解需求是非常简单的

 

需求1:有八种状态可以叠加  那么每个状态占一个byte位 每个状态可用 | 叠加起来

需求2:要知道已使用那个状态 用 & 执行清位数据 得出的结果必然跟状态相等 

需求3:要清除所有状态用 &~ 组合

需求4:在有限的容器里或数组循环使用 用  %,这样做目的是复用资源池

 

 

 

左移 << 

比较常见的是 << 1 或者 << 8 或 << (8 *n)

<< 1 相当于 原来的值 * 2 倍

<< 8 相当于 提高一个byte 位置 常用来网络传输转换

    int a = 1;
    System.out.println(a << 1);
    System.out.println(a << 8);
2
256

右移 >>

>> 1 相当于 原来的值 / 2 

>> 8 相当于 降低一个byte 位置 常用来网络传输转换

    System.out.println(2 >> 1);
    System.out.println(256 >> 8);

1
1

 

posted @ 2017-02-27 17:09  solq321  阅读(352)  评论(0编辑  收藏  举报