SGN
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgSgn
- 最后更新: 2024-01-29
返回数字的符号部分
语法
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 变量 | INTEGER | INTEGER | LONG | LONG |
| [U]SHORT 变量 | INTEGER | INTEGER | LONG | LONG |
| [U]LONG 变量 | INTEGER | INTEGER | LONG | LONG |
| [U]INTEGER 变量 | INTEGER | INTEGER | LONG | LONG |
| [U]LONGINT 变量 | LONGINT | INTEGER | LONG | LONG |
| SINGLE 变量 | SINGLE | LONG | LONG | LONG |
| DOUBLE 变量 | DOUBLE | LONG | LONG | LONG |
- 以常量作为参数时
Sgn的返回类型:
| 参数 | gas (32位) | gas64 (64位) | gcc 32位 (*) | gcc 64位 (*) |
|---|---|---|---|---|
| [U]BYTE 常量 | INTEGER | INTEGER | INTEGER | INTEGER |
| [U]SHORT 常量 | INTEGER | INTEGER | INTEGER | INTEGER |
| [U]LONG 常量 | INTEGER | INTEGER | INTEGER | INTEGER |
| [U]INTEGER 常量 | INTEGER | INTEGER | INTEGER | INTEGER |
| [U]LONGINT 常量 | LONGINT | INTEGER | LONGINT | INTEGER |
| SINGLE 常量 | SINGLE | SINGLE | SINGLE | SINGLE |
| DOUBLE 常量 | DOUBLE | DOUBLE | DOUBLE | DOUBLE |
(*): 也适用于 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的区别
- 无
参见
AbsOperator
返回 目录