整数

在Felix,我们有一个 int 它的值是接近零的小整数。

类型

这种类型是通过在库中通过C++来提升它来定义的:

type int = "int";

因此,所表示的整数的确切范围由底层C++实现决定。

直接常量

类型的非负值 int 可以这样写为十进制数字序列:

0
1
23
42

也可以在任意两个数字之间加下划线或单引号:

123_456
123'456

否定

没有负整数文本。但是,您可以使用前缀否定运算符(短划线字符)来找到整数的负数 - ,或函数 neg

-1
neg 1

中缀运算符

整数支持简单公式:

(12 + 4 - 7) * 3 / 6 % 2

在这里, + 是加法,中缀 - 是减法, * 是乘法, / 是除法,而且 % 除法后的余数。

商余号

当涉及到负数时,除法和余数需要一些解释。C中除法的商,因此Felix,总是向零舍入,因此:

-3/2 == -1

如果两个操作数都为负或都为非负,则商为非负,否则为非正。

剩下的部分必须符合公式:

dividend == quotient * divisor + remainder

所以我们

remainder == dividend - quotient * divisor

因此,当且仅当股息为非负时,余数为非负,否则为非正。

比较

我们提供C的常用比较: == 是平等, != 是不平等, < 小于, > 大于, <= 小于或等于,并且 >= 大于或等于。

比较的结果是 bool 类型。

恒定折叠

如果您编写的公式只包含 int ,Felix编译器将根据数学规则执行计算,使用更大的整数表示。最后,结果将被转换回较小的 int 表示。

如果计算结果超过编译器内部表示的大小,或者,对于 int ,结果不确定。

除以零

如果除法或余数运算的除数为零,编译器可能会中止编译,也可能会将问题推迟到运行时。如果问题被推迟并执行了代码,则将引发异常并中止程序。但是,代码可能无法执行。

越界值

如果在运行时执行的计算结果超出边界,则结果是不确定的。

摘要:整数比较

算符

类型

句法

语义

=

int*int->bool

中缀

平等

!=

int*int->bool

中缀

不相等

<=

int*int->bool

中缀

小于等于

<

int*int->bool

中缀

更少

>

int*int->bool

中缀

大于或等于

>

int*int->bool

中缀

更大的

摘要:整数运算

算符

类型

句法

语义

+

int*int->int

中缀

加法

-

int*int->int

中缀

减法

*

int*int->int

中缀

乘法

/

int*int->int

中缀

除法

%

int*int->int

中缀

余数

-

内景->内景

前缀

否定

阴性

内景->内景

前缀

否定

防抱死制动系统

内景->内景

前缀

绝对值

更多整数

Felix有更多的整数类型。参见参考手册:

https://felix.readthedocs.io/en/latest/integers.html

有关详细信息。