zoukankan      html  css  js  c++  java
  • 数值计算


        批处理里面的数值计算功能较弱,只能够进行整型计算,忽略浮点数的小数部分;同时数值计算的范围也受限于系统位数,对于目前较为常见的32位机来说,数值计算能处理的数值范围为0x80000000h~0x7FFFFFFFh,即-2147483648~+2147483647。
        数值计算需要使用set命令,具体格式为“set /a expression”。其中,expression代表计算表达式,计算表达式跟C语言里面的表达式基本上完全一致。set支持的运算符也跟C语言里面的一样,只是没有了増一减一。set支持的运算符及优先级排序如下:
    =========================================
        ()                  - 分组
        ! ~ -               - 一元运算符(逻辑非、按位非、取负)
        * / %               - 算数运算符(乘、除得商、除得余数,即取余)
        + -                 - 算数运算符(加、减)
        << >>               - 逻辑移位(左移一位、右移一位)
        &                   - 按位“与”
        ^                   - 按位“异”
        |                   - 按位“或”
        = *= /= %= += -=    - 赋值
          &= ^= |= <<= >>=
        ,                   - 表达式分隔符(set可一次处理多个表达式)
    =========================================
        我们知道,批处理中取变量的值是需要用%或者!的,而在set /a 中,直接用变量名称即可取得变量的值。另外,set支持八进制(数字前缀0)、十进制(数字无前缀)和十六进制(数字前缀0x),且支持不同进制之间的计算,如set /a a=123+0123+0x123,计算及显示结果为十进制。

    @echo off
    set /a a=123+0123+0x123
    echo %a%
    pause
  • 相关阅读:
    oracle中Blob和Clob类型的区别
    为什么要分库分表
    Enable file editing in Visual Studio's debug mode
    SQL Server Dead Lock Log
    Debug .NET Framework Source
    SQL Server text field里面有换行符的时候copy到excel数据会散乱
    诊断和修复Web测试记录器(Web Test Recorder)问题
    Can't load Microsoft.ReportViewer.ProcessingObjectModel.dll
    'telnet' is not recognized as an internal or external command
    Linq to XML
  • 原文地址:https://www.cnblogs.com/zouhong/p/9939145.html
Copyright © 2011-2022 走看看