首页 > 编程知识 正文

java 取string中的某一位,取一个字节的每一位

时间:2023-05-04 13:22:11 阅读:222639 作者:1567

最近做项目中要取一个long类型的几位,分别取出这几位的值,通过询问同事和问度娘,自己总结了一下:
需求:
我们知道long类型占四个字节,一个字节8位,所以long类型32位,这里要求取出前13位,中间8位,后11位
代码:

public void getSplitId(long id) {Integer deviedId;//前13位Integer areaId = (int) (id >> 19);//中间8位deviedId = (int) ((id >> 11) & 0xff);//后11位Integer channelId = (int) (id & 0x00001fff);}

这里再分析一下具体细节
例如:10010011
取前三位
10010011&11100000(0xE0),得到10000000,再右移5位,表达式为(10010011&0xE0)>>5
取后三位
10010011&00000111(0x07),得到00000011,表达式为10010011&0x07
取中间三位
10010011&00011100(0x1C),得到00010000,再右移三位,表达式是(10010011&0x1C)>>3

如有错误或者不恰当处,希望各位指出,谢谢

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。