中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-30 00:00
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何快速计算2的n次方??? 查看 8,960 回复 18
16 发表于 2007-04-05 12:08 ·  中国 湖北 潜江 电信
高级用户
★★★
积分 894
发帖 411
注册 2007-02-17 12:15
19年会员
UID 79697
性别 男
状态 离线
可直接计算乘方, "1^<^<n" 是什么意思?
@set c= 不知则觉多,知则觉少,越知越多,便觉越来越少. --- 知多少.
@for,/l,%%i,in,(1,1,55)do,@call,set/p=%%c:~%%i,1%%<nul&ping/n 1 127.1>nul


17 发表于 2007-04-05 22:28 ·  中国 福建 泉州 电信
银牌会员
★★★
积分 1,276
发帖 469
注册 2002-12-23 13:00
23年会员
UID 586
性别 男
来自 福建泉州
状态 离线
计算2的N次方,使用位操作的速度是最快的.
计算3的N次方就不行了.
因为2的二进制是10
2的2次方4的二进制是100
2的3次方8的二进制是1000
可以看出2的N次方就是将2左移N-1位.也就是1左移N位.
所以计算2的次方最快的方法就是使用移位.



  1. set /p n=计算2的N次方,请输入N:
  2. set /a "1<<%N%"
chenall 发表于: 2007-04-05 09:17
QQ:366840202
http://chenall.net
18 发表于 2007-04-06 02:11 ·  中国 湖北 黄冈 电信
高级用户
★★★
积分 894
发帖 411
注册 2007-02-17 12:15
19年会员
UID 79697
性别 男
状态 离线
谢谢16楼, 终于明白了什么是逻辑移位. 同时也可计算4,8,16, 的 n 次方了.
@set c= 不知则觉多,知则觉少,越知越多,便觉越来越少. --- 知多少.
@for,/l,%%i,in,(1,1,55)do,@call,set/p=%%c:~%%i,1%%<nul&ping/n 1 127.1>nul


19 发表于 2007-04-06 05:14 ·  中国 新疆 乌鲁木齐 电信
高级用户
★★★
Autowalk
积分 845
发帖 375
注册 2007-03-03 01:58
19年会员
UID 80606
性别 男
状态 离线
@echo off
set /p a=请输入一个数字:
echo s=2^^%a%>1.vbs
echo msgbox(s)>>1.vbs
1.vbs


纯属灌水 呵呵 !
论坛跳转: