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

[数值计算] [已解决]批处理怎样实现递增运算?

本帖最后由 brim 于 2011-9-17 13:29 编辑

求一计算批处理。
例如:
底数 1
递增次数 3
结果=8
运算过程是1 2 4 8

又例如:
底数 3
递增次数 3
结果=24
运算过程是3 6 12 24

变量A=底数
变量B=次数
第一次循环A*2 赋值给变量C
第二次循环递增C*2…如此直到变量B的次数
小弟学艺不精,在此求教各位高手,还望不吝赐教。
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

  1. @echo off
  2. set num1=3
  3. set num2=3
  4. set /a num1=%num1%^<^<%num2%
  5. echo %num1%
  6. pause
复制代码
1

评分人数

TOP

本帖最后由 brim 于 2011-9-14 17:25 编辑

非常感谢hankerer
  1. @echo off
  2. set /p num1=  请输入底数:
  3. set /p num2=  请输入循环次数:
  4. set /a num1=%num1%^<^<%num2%
  5. echo %num1%
  6. pause
复制代码

TOP

  1. @echo off
  2. Set /p snum=输入底数:
  3. Set /p num=输入递增次数:
  4. For /l %%i in (1,1,%num%) do Set /a snum*=2
  5. echo %snum%
  6. pause>nul
复制代码
1

评分人数

TOP

凑个热闹吧 哈哈
  1. @Echo Off&SetLocal EnableDelayedExpansion
  2. Set /P Num1=请输入底数:
  3. Set /P Num2=请输入递增次数:
  4. Cls
  5. For /L %%A In (1,1,%Num2%) Do (
  6. Set /A Num1+=!Num1!
  7. Echo 第%%A次递增结果: !Num1!
  8. Ping -n 1 127.0.0.1 > Nul
  9. )
  10. Echo.
  11. Echo 递增最总结果为:%Num1%
  12. Echo.
  13. Pause>Nul
复制代码
加了点小效果,哈哈。 还请笑纳!
1

评分人数

TOP

本帖最后由 xudaweb 于 2011-9-14 22:06 编辑

回复 2# hankerer

Hello123World版主的代码易懂些。这句代码中的^<看得我有些晕啊,请高手解释下。
  1. set /a num1=%num1%^<^<%num2%
复制代码
学习...

TOP

回复  hankerer

Hello123World版主的代码易懂些。这句代码中的^
xudaweb 发表于 2011-9-14 22:04


转移。不然会认为是重定向。

TOP

回复 7# hankerer
  1. set /a num1=%num1%^<^<%num2%
复制代码
还是不懂重定向的意思...能否详细的解释下"^<^<"的意思? 感谢~
学习...

TOP

回复 8# xudaweb


那个不是重定向,是位运算。参考:

批处理位运算以及原码、反码、补码的概念
http://bbs.bathome.net/thread-1844-1-1.html

批处理set命令学习笔记
http://bbs.bathome.net/viewthread.php?tid=3774#pid23888
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 brim 于 2011-9-17 17:03 编辑

回复 8# xudaweb


   其实可以写成
  1. set /a num1=%num1%"<<"%num2%
复制代码
<<逻辑移位符。我看了一下http://bbs.bathome.net/viewthread.php?tid=3774#pid23888
[x]"<<"[y]==[x]*2^[y]
[x]">>"[y]==[x]/2^[y]
讲得很清楚了。。
当输入特殊字符^&|<>时,前要加上^,否则出现语法错误.
1

评分人数

TOP

多谢Batcher,brim两位的热心帮助。内容还在慢慢消化中...
学习...

TOP

返回列表