Skip to content

SGN


返回数字的符号部分

语法

declare function Sgn ( byval number as numtype ) as numtype

用法

result = Sgn( number )

参数

number

要求符号的数字

numtype

数值类型

返回值

返回 number 的符号部分。

  • 如果 number 大于零,则 Sgn 返回 1
  • 如果 number 等于零,则 Sgn 返回 0
  • 如果 number 小于零,则 Sgn 返回 -1

说明

必需的 number 参数可以是任何有效的数值表达式。

大于或等于 SizeOf(Any Ptr) 的无符号数将被视为有符号数处理,即如果最高位被设置,该数将被视为负数,并返回 -1

注意:

Sgn 的返回类型取决于传入参数的类型(变量或常量及其数据类型)以及使用的后端(gas、gas64、gcc 32位、gcc 64位):

  • 以变量作为参数时 Sgn 的返回类型:
参数gas (32位)gas64 (64位)gcc 32位 (*)gcc 64位 (*)
[U]BYTE 变量INTEGERINTEGERLONGLONG
[U]SHORT 变量INTEGERINTEGERLONGLONG
[U]LONG 变量INTEGERINTEGERLONGLONG
[U]INTEGER 变量INTEGERINTEGERLONGLONG
[U]LONGINT 变量LONGINTINTEGERLONGLONG
SINGLE 变量SINGLELONGLONGLONG
DOUBLE 变量DOUBLELONGLONGLONG
  • 以常量作为参数时 Sgn 的返回类型:
参数gas (32位)gas64 (64位)gcc 32位 (*)gcc 64位 (*)
[U]BYTE 常量INTEGERINTEGERINTEGERINTEGER
[U]SHORT 常量INTEGERINTEGERINTEGERINTEGER
[U]LONG 常量INTEGERINTEGERINTEGERINTEGER
[U]INTEGER 常量INTEGERINTEGERINTEGERINTEGER
[U]LONGINT 常量LONGINTINTEGERLONGINTINTEGER
SINGLE 常量SINGLESINGLESINGLESINGLE
DOUBLE 常量DOUBLEDOUBLEDOUBLEDOUBLE

(*): 也适用于 clang 和 llvm

Sgn 一元 运算符 可以被用户自定义类型重载。

示例

start GeSHi

vb
Dim N As Integer = 0

Print Sgn ( -1.87 )
Print Sgn ( 0 )
Print Sgn ( 42.658 )
Print Sgn ( N )

end GeSHi

输出如下:

-1
0
1
0

方言差异

  • -lang qb 方言中,此运算符不能被重载。

与QB的区别

参见

  • Abs
  • Operator

返回 目录

基于 FreeBASIC 官方文档翻译 如有侵权请联系我们删除
FreeBASIC 是开源项目,与微软公司无隶属关系