使用逻辑与取出byte中的前4位和后4位

说起逻辑与,在Java中有两种运算符,分别是&和&&.
对于这两种与,在实际应用有所不同,&用于对数字进行按位与,而&&用于对两个布尔表达式进行与操作.
由上一句话可知,&用于两个数,如果是两个表达式,必须先计算出两个表达式.
而&&用于两个布尔表达式,如果第一个表达式为假,则不计算第二个布尔表达式.这张现象称为 逻辑短路 .
在实际应用中,&&常出现在条件判断语句中,而&则用取一串二进制数中的某些数.
下面,我们将利用&取出一个byte类型变量中的前4位以及后4位,并用0~F(十六进制)表示.

假设:这个变量的值为 195 11000011 则前4位为1100 0x0A 后四位为0011 0x03

/*
 *取一个字节中的前4位与后四位
*/
class Get{
    public static void main(String args[]){
    byte number =(byte)195;
    System.out.println(get(number));
    }
    public static String get(byte number){
    // 00001111用于取出后四位
    byte num=15;
    char[ ] arr=new char[]{'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
    int behind=number#
    int front=(number>>4&num);  //将高位移到低位再取值
    return "前四位:"+arr[front]+" 后四位:"+arr[behind];
    }
}

结果:


前四位:C 后四位:3

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1986年元月下旬有一次与《红楼梦》有关、也与“红学”界有关的盛会,在北京举行。我已经接到中国社会科学院文学所的请...
    梁宋君阅读 635评论 0 0
  • 2017年 5月 19日 星期五 阳光灿烂 大家好,我是236号星宝宝,我正在参加小牛妈妈日记星球第五期蜕变之旅,...
    新加坡秀英阅读 473评论 0 1
  • 孩子总是看到自己外貌的缺点,经常抱怨;孩子经常回来说**同学嘲笑我的**行为;孩子很想参与舞台表演,但是总因情绪紧...
    再飞的鹰阅读 725评论 0 1