Board logo

标题: 求助:set进行十进制计算,却得到八进制结果 [打印本页]

作者: rongfeng98     时间: 2009-12-3 17:37    标题: 求助:set进行十进制计算,却得到八进制结果

@echo off
set var=000100100003
set a=%var:~4,4%
set /a b=%a%+1
echo %a%+1是%b%
pause

今天第一次遇到这样的问题,本想是十进制计算问题,结果却是八进制计算结果???
中间四位数据有很多种情况,请不要使用截取长度的方法。

[ Last edited by rongfeng98 on 2009-12-3 at 17:44 ]
作者: rongfeng98     时间: 2009-12-4 12:25
已解决
作者: Hanyeguxing     时间: 2009-12-10 15:54
批处理在运算时,会认定所有以0开头的数字为8进制,以0x开头的为16进制。
在set /a和if比较运算时,要注意这个问题
作者: rongfeng98     时间: 2009-12-25 16:14
谢谢!后来经过测试,的确如Hanyeguxing所说。
加上进制标志符
@echo off
set var=0x00010x000a0x0003
set a=%var:~6,6%
set /a b=%a%+1
echo %a%+1是%b%
pause