整数是整数;不包含小数点的数字。 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 相关概念父主题: |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-1-7 19:37
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.