用性能最高的(也是安全的)方式将long
的最后一位(最低有效位)(由System.currentTimeInMillis()作为时间戳实际生成)替换为其他位?
还是通过使用按位运算将固定的附件附加到其末端的更好方法?
最佳答案
在您的评论中,您说二进制数字或十进制数字都可以。由于安德鲁发布了十进制版本,因此我发布了要替换2 ls位的二进制版本:
以下程序介绍了4种可能性,您可以用它们替换2个ls位并产生输出:
9999999999999999
9999999999999996
9999999999999997
9999999999999998
9999999999999999
码:
public class A {
public static void main(String[] args) {
long aLong = 9999999999999999L;
System.out.println(aLong);
long aLong2 = aLong & ~3 + 0;
System.out.println(aLong2);
aLong2 = aLong & ~3 + 1;
System.out.println(aLong2);
aLong2 = aLong & ~3 + 2;
System.out.println(aLong2);
aLong2 = aLong & ~3 + 3;
System.out.println(aLong2);
}
}