CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoLISP 开发指南

关于整数(AutoLISP)

2023-1-6 14:08| 发布者: admin| 查看: 1396| 评论: 0|来自: AutoCAD

摘要: 整数是整数;不包含小数点的数字。

整数是整数;不包含小数点的数字。

AutoLISP 整数是 32 位有符号数字,其值范围为 +2,147,483,647 到 -2,147,483,648。某些功能通过,只接受 +32767 到 -32678 的 16 位数字。显式使用整数时,该值称为常量。2、-56 和 1,200,196 等数字是有效的整数。

如果输入的数字大于允许的最大整数(导致整数溢出),AutoLISP 会将整数转换为实数。但是,如果对两个有效整数执行算术运算,并且结果大于允许的最大整数,则结果数字将无效。

以下示例演示了 AutoLISP 如何处理整数溢出。

最大的正整数值保留其指定值:

(setq int1 2147483647)
2147483647

如果输入的整数大于允许的最大值,AutoLISP 将以实数形式返回该值:

(setq int2 2147483648)
2.14748e+009

涉及两个有效整数但导致整数溢出的算术运算会产生无效结果:

(setq int3 (+ 2147483646 3))
-2147483647

在前面的示例中,结果显然是无效的,因为两个正数相加会导致负数。但请注意以下操作如何生成有效结果:

(setq int4 (+ 2147483648 2))
2.14748e+009

在这种情况下,AutoLISP 会先将 2147483648 转换为有效的实数,然后再将 2 添加到数字中。结果是有效的实数。最大负整数值保留其指定值:

(setq int5 -2147483647)
-2147483647

如果输入的负整数大于允许的最大负值,AutoLISP 将返回该值为实数:

(setq int6 -2147483648)
-2.14748e+009

以下操作成功结束,因为 AutoLISP 首先将溢出负整数转换为有效的实数:

(setq int7 (- -2147483648 1))
-2.14748e+009

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1   苏公网安备32011402011833)

GMT+8, 2025-1-7 19:37

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部