楼 主
求助:set进行十进制计算,却得到八进制结果
发表于 2009-12-03 17:37 · 中国 北京 联通(数字北京大厦IDC机房)
新手上路
★
积分 5
发帖 4
注册 2008-10-07 15:11
17年会员
UID 127660
性别 男
状态 离线
@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 ]
第 2 楼
发表于 2009-12-04 12:25 · 中国 北京 联通(数字北京大厦IDC机房)
新手上路
★
积分 5
发帖 4
注册 2008-10-07 15:11
17年会员
UID 127660
性别 男
状态 离线
第 3 楼
发表于 2009-12-10 15:54 · 中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
批处理在运算时,会认定所有以0开头的数字为8进制,以0x开头的为16进制。
在set /a和if比较运算时,要注意这个问题
第 4 楼
发表于 2009-12-25 16:14 · 中国 广东 佛山 移动
新手上路
★
积分 5
发帖 4
注册 2008-10-07 15:11
17年会员
UID 127660
性别 男
状态 离线
谢谢!后来经过测试,的确如Hanyeguxing所说。
加上进制标志符
@echo off
set var=0x00010x000a0x0003
set a=%var:~6,6%
set /a b=%a%+1
echo %a%+1是%b%
pause
论坛跳转: