51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Bat批处理数值计算

批处理里面的数值计算功能较弱,只能够进行整型计算,忽略浮点数的小数部分;同时数值计算的范围也受限于系统位数,对于目前较为常见的32位机来说,数值计算能处理的数值范围为0x80000000h~0x7FFFFFFFh,即-2147483648~+2147483647

数值计算需要使用set命令,具体格式为set /a expression。其中,expression代表计算表达式,计算表达式跟C语言里面的表达式基本上完全一致。set支持的运算符也跟C语言里面的一样,只是没有了増一减一。set支持的运算符及优先级排序如下:

|---------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 8 9 10 11 12 13 | ========================================= () - 分组 ! ~ - - 一元运算符(逻辑非、按位非、取负) * / % - 算数运算符(乘、除得商、除得余数,即取余) + - - 算数运算符(加、减) << >> - 逻辑移位(左移一位、右移一位) & - 按位"与" ^ - 按位"异" | - 按位"或" = *= /= %= += -= - 赋值 &= ^= |= <<= >>= , - 表达式分隔符(set可一次处理多个表达式) ========================================= |

我们知道,批处理中取变量的值是需要用%或者!的,而在set /a 中,直接用变量名称即可取得变量的值。另外,set支持八进制(数字前缀0)、十进制(数字无前缀)和十六进制(数字前缀0x),且支持不同进制之间的计算,如set /a a=123+0123+0x123,计算及显示结果为十进制。


赞(3)
未经允许不得转载:工具盒子 » Bat批处理数值计算