明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2401|回复: 5

关于logand的用法

[复制链接]
发表于 2004-8-21 17:46:00 | 显示全部楼层 |阅读模式
请教logand函数的功能 (loagand 7 15 3) 返回 3 为什么? (loag and 2 3 15) 返回 2 为什么?

(loagand 8 3 4) 返回 0 为什么?

请指点“逻辑按位与”意思,谢谢!

发表于 2004-8-21 19:35:00 | 显示全部楼层
7 的二进制为0111, 15为1111,3为0011,逐位AND运算结果为0011,所以是3


8        的二进制为1000, 3为0011,4为0100, 逐位AND运算结果为0000,所以是0
发表于 2004-8-21 20:06:00 | 显示全部楼层

回复

1.逻辑与(logand 7 15 3)
0111
1111
0011
结果:
0011 = 3 2.逻辑与(logand 2 3 15)
0010
0011
1111
结果:
0010 = 2 3.逻辑与(logand 8 3 4)
1000
0011
0100
结果:
0000 = 0
 楼主| 发表于 2004-8-23 10:20:00 | 显示全部楼层
原来按位指的是按二进制位,明白了


非常感谢二位版主指点


不好意思,我对此函数的用途不了解,但我想肯定有它独特的用处。请问此函数有什么作用?一般用在什么地方?
发表于 2004-8-24 21:05:00 | 显示全部楼层
wjm3发表于2004-8-23 10:20:00不好意思,我对此函数的用途不了解,但我想肯定有它独特的用处。请问此函数有什么作用?一般用在...
一般用于需要按位位操作时。举个例子:
  1. ;;使用状态行的“对象捕捉”按钮关闭对象捕捉模式,除了返回 OSMODE 的普通,
  2. ;;还将返回位码 16384 (0x4000)。这个附加值有助于开发人员编写 AutoCAD 用
  3. ;;程序并将此模式与“绘图设置”对话框关闭的对象捕捉模式区别开来。设置位
  4. ;;码值将关闭对象捕捉。将 OSMODE 设置为其他值将打开对象捕捉。(defun qf-disable-osmode()
  5.        (setvar "osmode" (logior (getvar "osmode") 16384)) ; turn it off: 16384=0x4000
  6. )
  7. (defun qf-enable-osmode()
  8.        (setvar "osmode" (logand (getvar "osmode") 49151)) ; turn it on: 49151=0xBFFF
  9. )
 楼主| 发表于 2004-8-25 09:43:00 | 显示全部楼层
谢谢秋枫!


我先试试,不清楚再向您请教。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-9-30 18:33 , Processed in 0.187418 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表