标题: cmd所能处理的最大数值
[打印本页]
作者: bat-zw
时间: 2008-5-29 11:52
标题: cmd所能处理的最大数值
&&cmd在数值处理上有个上限,于是写下了这段计算其最大处理值的代码,以利新手
以后的操作:
@echo off&setlocal enabledelayedexpansion
set a=1
:begin
set /a a*=2,n+=1
set n=%a%
if %a% lss 0 (
set /a n-=1
set a=!n!&goto again
)
goto begin
:again
set /a a+=1,n+=1
set n=%a%
if %a% lss 0 (
set /a n-=1
echo cmd所能处理的最大数值为:!n!。
pause>nul&goto :eof
)
goto again
[
Last edited by zw19750516 on 2008-5-29 at 12:08 PM ]
作者: HAT
时间: 2008-5-29 12:29
2^31是吧?
作者: 26933062
时间: 2008-5-29 16:01
@echo off
set /a d=1^<^<31,x="~d"
echo cmd所能处理的最小数值为 %d%
echo cmd所能处理的最大数值为 %x%
pause>nul
作者: WANKOILZ
时间: 2008-5-29 18:58
楼上的够简洁,学习了。
这点我感到不解:set /a d=^<^<30 当小于31的时候d的值是正数,而31的时候就变成负数了?
作者: HAT
时间: 2008-5-29 22:22
Quote: |
Originally posted by WANKOILZ at 2008-5-29 06:58 PM:
楼上的够简洁,学习了。
这点我感到不解:set /a d=^<^<30 当小于31的时候d的值是正数,而31的时候就变成负数了? |
|
32位的操作系统,能表示的符号数范围是:
负2的31次方 到 正2的31次方减1
作者: WANKOILZ
时间: 2008-5-29 22:38
了解了,感谢楼上的回答。
经测试, ~ 的作用好象是取相反数再减1。