Cadence Skill 论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2430|回复: 1

[skill函数] and band bnand函数

[复制链接]
发表于 2020-5-10 22:21:13 | 显示全部楼层 |阅读模式
今天开始看SKILL函数了,看到BAND一直不解,折腾了半天,又在网上查资料,终于明白了
AND:就是与的意思,会一个个检查and中的参数,当比较到其中一个为NIL时,则退出检查,返回NIL;当最后参数也为真时,则返回最后一个参数的值


and(



g_arg1 g_arg2
[ g_arg3... ]
)
=> nil | g_val

band:b是位的意思,并且是并行比较(也就是band中的每个参数同时按二进制位比较)
band(
x_op1
x_op2
[ x_op3 ... ]
)
=> x_result
如以下例子
band(12 13) => 12
如二进制1100表示12  1101表示13 ,然后逐位比较相与,结果是1100,也就是12

bnand:表示逐位比较与非
如下例子
bnand(12 13) => -13
这里用到了非运算,所以有点特别,二进制需要用2个字节也就是16位来表示
如12用0000000000001100  13用0000000000001101表示,然后与非,与非是有0出1,全1出0
比较的结果是1111111111110011,这里的结果不是实际结果,只是一个补码,补码=反码+1,反码的非值就是真实值,所以先得到反码的值是1111111111110010(反码做非运算时,最高位保留,表示正负,1为负,0为正),所以真实值是1000000000001101,也就是-13
其它的或非,异或之类的同理,这里就不说了
其实感觉SKILL很少能用到,就是把数值比较变为逻辑关系的判断

发表于 2020-10-26 10:04:55 | 显示全部楼层
感谢楼主的无私奉献。。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|网站地图|Cadence Skill 论坛 ( 蜀ICP备13024417号 )

GMT+8, 2024-3-19 13:17 , Processed in 0.198509 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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