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

[数值计算] 【讨论】批处理位运算所蕴含的计算技巧

下面代码双击运行
  1. @echo off&if not %1.==. call%*&exit/b:: code by plp626
  2. echo    稍等。。。
  3. set "_print=set #s=      ^!#1^!&for %%a in (^!#2^!)do set/p=^!#s:~-%%a^!<nul"
  4. set/a b=1,p=30,p2=p*2,w=4,mk=(p+1-b)*w/2&set "and=&"&set "or=|"&set "eor=6"
  5. if exist andoreor.txt del andoreor.txt
  6. for %%a in (and;or;eor;)do (
  7.         >>andoreor.txt (echo/&echo 【bitwise %%a】)
  8.         for /f "delims=" %%b in ('%~s0 :out !%%a!')do >>andoreor.txt echo %%b
  9. )
  10. start/max notepad andoreor.txt
  11. exit/b
  12. :out
  13. setlocal enabledelayedexpansion&if "%~1"=="6" (set "op=^") else set "op=%~1"
  14. for /l %%a in (%b% 1 %p%)do set/a x[%%a]=%%a,y[%%a]=%%a
  15. for /l %%a in (%b% 1 %p%)do for /l %%b in (%b% 1 %p%)do set/a "ans[%%a][%%b]=x[%%a]%op%y[%%b]"
  16. set #1=!op!│&set #2=3&%_print%
  17. for /l %%a in (%b% 1 %p%)do set #1=!y[%%a]!&set #2=%w%&%_print%
  18. echo/&(set #1=─┼&set #2=2&%_print%)&for /l %%a in (1 1 %mk%)do set/p=─<nul
  19. echo/&for /l %%a in (%b% 1 %p%)do (
  20.         set #1=!x[%%a]!│&set #2=3&%_print%
  21.         for /l %%b in (%b% 1 %p%)do set #1=!ans[%%a][%%b]!&set #2=%w%&%_print%
  22.         echo.
  23. )
  24. endlocal&exit/b
复制代码

将x看做一个数,y看做一个数(x,y 属于整数),那么x&y的结果用数学表达式怎么表示?
通过这张表大家归纳一下,若能归纳出来,也许可以对一些复杂的数学计算通过位运算很快速的得出结果

返回列表