我理解的,不知道正不正确
& 按位与
0 & 0=0
1 & 0=0
0 & 1=0
1 & 1=1
| 按位或
0 | 0=0
1 | 0=1
0 | 1=1
1 | 1=1
^ 按位异或
0 ^ 0=0
1 ^ 1=0
0 ^ 1=1
1 ^ 0=1
公历闰年的简单计算方法
能被4整除而不能被100整除,
能被100整除也能被400整除.
如:- @echo off
- cls
- setlocal enabledelayedexpansion
- set sy=800
- ::设年份为800
- set /a leap="^!(sy %% 4) & ^!(^!(sy %% 100)) | ^!(sy %% 400)"
- ::!(sy %% 4)
- ::800能被4整除所以为0
- ::1 ^ 0=1
- ::^!(^!(sy %% 100))
- ::800能被100整除也得0,
- ::1 ^ 0=1
- ::1 ^ 1=0
- ::^!(sy %% 400)
- ::800也能被400整除得0
- ::1 ^ 0=1
- ::最后
- ::leap=set /a leap="(1&0|1)" 结果为1
- echo %leap%
- pause
复制代码 |