代码之家  ›  专栏  ›  技术社区  ›  Fabio Gomes

为什么stroint('X5')在Delphi中返回5?

  •  6
  • Fabio Gomes  · 技术社区  · 17 年前

    为什么stroint('X5')在Delphi中返回5?X是某种科学符号还是类似的东西?是否还有其他字符也将转换为整数?

    4 回复  |  直到 17 年前
        1
  •  11
  •   Pesto    17 年前

    由于不了解Delphi,我敢打赌“X”会使函数假定值为十六进制。由于0x5==5,它似乎正在工作。试试X10,看看你能不能回到16岁。

        2
  •  11
  •   vcldeveloper    17 年前

    在Delphi中,十六进制值用$prefix标记:

    a := $10;  // => a = 16
    

    但由于在某些其他语言(例如C)中,X用于标记十六进制值,stroint函数同时支持$和X前缀,因此下面两种代码都返回16:

    a := StrToInt('x10'); // => a = 16
    
    a := StrToInt('$10'); // => a = 16
    
        3
  •  1
  •   Mehrdad Afshari    17 年前

    这是十六进制符号。尝试XF以查看其返回15。

        4
  •  0
  •   GvS    17 年前

    可能 hexadecimal 符号

    X表示后面的数字是十六进制(0-9+A-F)。