帮忙看下这个异或加位移作用是啥

请问调用getSeqBitsMask的作用是啥?谢谢
private byte seqBits;
public long getSeqBitsMask() {
    return -1L ^ -1L << seqBits;
}

 

先左移5位,使得最后5位是0,前面全是1

然后再异或,由于-1所有位都是1,从而是原数值中的所有位取反

大概是得到一个位掩码,seqBits指定位为1的数量,比如seqBits为5,那么函数返回的二进制值是0000-00000011111,5个1之前全是0