中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-26 01:26
47,812 主题排行 / 349,910 发帖 / 今日 0 篇 / 48,264 会员排行
DOS批处理 & 脚本技术(批处理室) » 如何快速计算2的n次方???
可打印版本  9,143 / 18
第1楼 zerocq 发表于 2007-01-18 06:45
中级用户 发帖 196 积分 458
如何快速计算2的n次方???
set /p n=取一个数字
然后怎么计算2的n次方??

2^%n%好像不对啊,这句是把两个字符相连

有什么特殊符号吗??

要一段长代码累加计算??:(
第2楼 lxmxn 发表于 2007-01-18 06:53
版主 发帖 4,938 积分 11,386
  帮我测试一下:
第3楼 tao0610 发表于 2007-01-18 06:55
高级用户 发帖 218 积分 579
很多方法,比如for循环,GOTO循环.或者直接位计算,
第4楼 zerocq 发表于 2007-01-18 06:57
中级用户 发帖 196 积分 458
多谢楼上两位:)
第5楼 tao0610 发表于 2007-01-18 06:58
高级用户 发帖 218 积分 579
先我一步...当我灌水...
第6楼 lxmxn 发表于 2007-01-18 07:01
版主 发帖 4,938 积分 11,386

  灌什么水啊?你的方法简单,巧妙,怎么是灌水呢?
第7楼 everest79 发表于 2007-01-18 07:01
金牌会员 发帖 1,127 积分 2,564
@echo off
set /p x=LEK:
set /p n=KEL:
IF NOT "%x%%n%" == "" (
IF /i "%x%" == "q" (
GOTO :EOF) ELSE (
SET /A NUM=x,VAR=x,n-=1)
) ELSE GOTO :EOF
for /l %%i IN (1,1,%n%) DO SET /A NUM*=%VAR%
echo %NUM%
pause>nul
第8楼 tao0610 发表于 2007-01-18 07:07
高级用户 发帖 218 积分 579
呵呵,其实原理一样,继续灌一帖..
第9楼 everest79 发表于 2007-01-18 07:13
金牌会员 发帖 1,127 积分 2,564
我正加分类,结果结了一个没分啦
第10楼 NaturalJ0 发表于 2007-01-18 07:21
银牌会员 发帖 533 积分 1,181
2 的 N 次方,就是 16 的 "N/4" 次方再乘上 "N%4" 个 2

16 的 "N/4" 次方就是

set /a Number=0x1"N/4 个零"

这样不知道是不是快些
第11楼 PPdos 发表于 2007-01-18 09:22
高级用户 发帖 268 积分 783
问:为何n不是引用%n%而能正常运行呢?

@echo off
set/p n=请输入2的几次方:
set/a num=1^<^<%n%
echo %num%
pause
第12楼 everest79 发表于 2007-01-18 09:39
金牌会员 发帖 1,127 积分 2,564
set /a条件下,可以省略引用字符
大部分是这样,不过当你set /a nn是还是得加上%
第13楼 jmz573515 发表于 2007-01-20 01:43
银牌会员 发帖 464 积分 1,212
高!

[ Last edited by jmz573515 on 2007-1-22 at 10:10 PM ]
第14楼 stornager 发表于 2007-04-02 03:58
中级用户 发帖 131 积分 328
set/a num=1^<^<%n%
此句1^<^<%n%是否在1~n中任取一个数.请搂主告知.???
第15楼 flyinspace 发表于 2007-04-02 04:01
银牌会员 发帖 517 积分 1,206
啊。
他是做位运算
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023