如何在不使用除法运算的情况下检查给定年份是否为闰年 Java中的一些库方法。是否可以使用按位运算符进行检查?
PS:几个世纪以来都不需要验证
最佳答案
这里有一些不使用模函数识别闰年的方法。
首先,我们假设(或测试)年份在 1901 - 2099
范围内.
以二进制数表示的闰年将有
00
作为 最后两位数。所以:今年是闰年
if year & (not 4) == 0
如果您有一个函数可以将实数截断为 整数然后这有效:
x = trunc(year / 4)
今年是闰年
if x * 4 == year
如果你有移位(不是循环移位)运算符,我敢肯定 Verilog 则:
x = year >> 2
今年是闰年
if (x << 2) == year
如果假设范围是 1901 - 2099
是 false 那么你需要一些额外的逻辑来消除 1900, 1800, 1700 and 2100, 2200, 2300 and so on
.
关于java - 检查闰年 - 不使用除法运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52158601/