Freemarker 如何做位运算

常见的位运算符 比如: 或运算 | 与运算 & , 如何实现

按位与(&) 、按位或( |),

按位与,即A & B 都为true(1)时,为true,否则都为false。

例如:3 & 2
(3)二进制:011
(2)二进制:010

        011
        010
------
    010

3&2 = 2

注明:不好意思看错题了。

既然是二进制比较,就是二进制和十进制互相转换,或、与的比较。

比较运算:x==y, x!=y, xy, x>=y, x<=y,
x < y, 等等
逻辑操作:!registered && (firstVisit || fromEurope)

比如:
<#if x < 12 && color = "green">
We have less than 12 things, and they are green.
</#if>
<#if !hot> <#-- here hot must be a boolean -->
It's not hot. </#if>

书上是这么写的!

Freemarker的定位是模板,并且具备一定的逻辑计算能力。并不建议在freemarker中做这种计算,如果真的需要做,建议在java编写工具类,在freemarker中引用工具类。

理论上可以用算术计算模拟

a=xxx
b=xxx
比如4位and可以写
result = (a % 2 + b % 2) / 2 * 1 + ((a / 2) % 2 + (b / 2) % 2) / 2 * 2 + ((a / 4) % 2 + (b / 4) % 2) / 2 * 4 + ((a / 8) % 2 + (b / 8) % 2) / 2 * 8