[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
我理解的,不知道正不正确

& 按位与
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整除.

如:
  1. @echo off
  2. cls
  3. setlocal enabledelayedexpansion
  4. set sy=800
  5. ::设年份为800
  6. set /a leap="^!(sy %% 4) & ^!(^!(sy %% 100)) | ^!(sy %% 400)"
  7. ::!(sy %% 4)
  8. ::800能被4整除所以为0
  9. ::1 ^ 0=1
  10. ::^!(^!(sy %% 100))
  11. ::800能被100整除也得0,
  12. ::1 ^ 0=1
  13. ::1 ^ 1=0
  14. ::^!(sy %% 400)
  15. ::800也能被400整除得0
  16. ::1 ^ 0=1
  17. ::最后
  18. ::leap=set /a leap="(1&0|1)" 结果为1
  19. echo %leap%
  20. pause
复制代码

TOP

我认为用到的是 &  |  ^ 这三个运算符.因为在开启变量延迟功能的时候!符号都是无效的,就算用^引用.

TOP

多谢各位,原来!是取反,这样就好理解了.
现在才知道在开启变量延时的情况下引有!也可以做运算符.^_^

TOP

返回列表