标题: [数值计算] [已解决]批处理怎样实现递增运算? [打印本页]
作者: brim 时间: 2011-9-14 16:55 标题: [已解决]批处理怎样实现递增运算?
本帖最后由 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的次数
小弟学艺不精,在此求教各位高手,还望不吝赐教。
作者: hankerer 时间: 2011-9-14 17:06
- @echo off
-
- set num1=3
- set num2=3
- set /a num1=%num1%^<^<%num2%
- echo %num1%
-
-
- pause
复制代码
作者: brim 时间: 2011-9-14 17:24
本帖最后由 brim 于 2011-9-14 17:25 编辑
非常感谢hankerer- @echo off
- set /p num1= 请输入底数:
- set /p num2= 请输入循环次数:
- set /a num1=%num1%^<^<%num2%
- echo %num1%
- pause
复制代码
作者: Hello123World 时间: 2011-9-14 20:28
- @echo off
- Set /p snum=输入底数:
- Set /p num=输入递增次数:
- For /l %%i in (1,1,%num%) do Set /a snum*=2
- echo %snum%
- pause>nul
复制代码
作者: 冷玉公子 时间: 2011-9-14 21:55
凑个热闹吧 哈哈- @Echo Off&SetLocal EnableDelayedExpansion
- Set /P Num1=请输入底数:
- Set /P Num2=请输入递增次数:
- Cls
- For /L %%A In (1,1,%Num2%) Do (
- Set /A Num1+=!Num1!
- Echo 第%%A次递增结果: !Num1!
- Ping -n 1 127.0.0.1 > Nul
- )
- Echo.
- Echo 递增最总结果为:%Num1%
- Echo.
- Pause>Nul
复制代码
加了点小效果,哈哈。 还请笑纳!
作者: xudaweb 时间: 2011-9-14 22:04
本帖最后由 xudaweb 于 2011-9-14 22:06 编辑
回复 2# hankerer
Hello123World版主的代码易懂些。这句代码中的^<看得我有些晕啊,请高手解释下。- set /a num1=%num1%^<^<%num2%
复制代码
作者: hankerer 时间: 2011-9-14 22:15
回复 hankerer
Hello123World版主的代码易懂些。这句代码中的^
xudaweb 发表于 2011-9-14 22:04
转移。不然会认为是重定向。
作者: xudaweb 时间: 2011-9-14 22:33
回复 7# hankerer - set /a num1=%num1%^<^<%num2%
复制代码
还是不懂重定向的意思...能否详细的解释下"^<^<"的意思? 感谢~
作者: Batcher 时间: 2011-9-14 23:07
回复 8# xudaweb
那个不是重定向,是位运算。参考:
批处理位运算以及原码、反码、补码的概念
http://bbs.bathome.net/thread-1844-1-1.html
批处理set命令学习笔记
http://bbs.bathome.net/viewthread.php?tid=3774#pid23888
作者: brim 时间: 2011-9-17 16:58
本帖最后由 brim 于 2011-9-17 17:03 编辑
回复 8# xudaweb
其实可以写成- set /a num1=%num1%"<<"%num2%
复制代码
<<逻辑移位符。我看了一下http://bbs.bathome.net/viewthread.php?tid=3774#pid23888
[x]"<<"[y]==[x]*2^[y]
[x]">>"[y]==[x]/2^[y]
讲得很清楚了。。
当输入特殊字符^&|<>时,前要加上^,否则出现语法错误.
作者: xudaweb 时间: 2011-9-19 20:51
多谢Batcher,brim两位的热心帮助。内容还在慢慢消化中...
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |