与上0xFFFFFFFF是为了什么?

 private static long FF(long a, long b, long c, long d, long x, long s,
            long ac) {
        a += (F(b, c, d)&0xFFFFFFFFL) + x + ac;
        a = ((a&0xFFFFFFFFL)<< s) | ((a&0xFFFFFFFFL) >>> (32 - s));
        a += b;
        return (a&0xFFFFFFFFL);


    }

慕先生1568897
浏览 4044回答 1
1回答

pardon110

0xFFFFFFFFL 是十六进制数,&是二进制位运算,其规则是两个数都转为二进制,然后从高位开始比较,如果两个数都为1则为1,否则为0。L表示长整数(long),全部f...f用二进制表示为:0xffffffffL = 1111,1111 1111,1111 1111,1111 1111,1111 a&0xFF.... 这个操作一般都是在将byte数据转成int或者其他整形数据的过程中;使用了这个操作,最终的整形数据只有低8位有数据,其他位数都为0。 
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java