![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 23:52 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 求助:set进行十进制计算,却得到八进制结果 |
| 可打印版本 1,064 / 3 |
| 第1楼 rongfeng98 | 发表于 2009-12-03 17:37 |
| 新手上路 发帖 4 积分 5 | |
|
求助: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 ] |
|
| 第2楼 rongfeng98 | 发表于 2009-12-04 12:25 |
| 新手上路 发帖 4 积分 5 | |
|
已解决
|
|
| 第3楼 Hanyeguxing | 发表于 2009-12-10 15:54 |
| 银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂 | |
|
批处理在运算时,会认定所有以0开头的数字为8进制,以0x开头的为16进制。
在set /a和if比较运算时,要注意这个问题 |
|
| 第4楼 rongfeng98 | 发表于 2009-12-25 16:14 |
| 新手上路 发帖 4 积分 5 | |
|
谢谢!后来经过测试,的确如Hanyeguxing所说。
加上进制标志符 @echo off set var=0x00010x000a0x0003 set a=%var:~6,6% set /a b=%a%+1 echo %a%+1是%b% pause |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |