CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoLISP 开发指南

关于整数(AutoLISP)

2023-1-6 14:08| 发布者: admin| 查看: 1085| 评论: 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 在将数字加 2 之前将2147483648转换为有效的实数。结果是有效的实数。最大的负整数值保留其指定值:

(setq int5 -2147483647)
-2147483647

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

(setq int6 -2147483648)
-2.14748e+009

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

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

路过

雷人

握手

鲜花

鸡蛋

最新评论

python编程Autocad从入门到精通

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

GMT+8, 2024-5-7 06:17

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部