присланное в 19:06:30 17 сентября 2010, Пятница,
отправитель Bee:
I do not know any. When I needed bitwise logical operators, I had to write the
following workaround (works only on non-negative integers):
"{{{3 num.and
function s:F.num.and(v1, v2)
let [v1, v2]=[a:v1, a:v2]
let list=[]
while v1 || v2
let [nv1, nv2]=[v1/2, v2/2]
call add(list, ((nv1*2!=v1)&&(nv2*2!=v2)))
let [v1, v2]=[nv1, nv2]
endwhile
let r=0
while !empty(list)
let r=(r*2) + remove(list, -1)
endwhile
return r
endfunction
"{{{3 num.or
function s:F.num.or(v1, v2)
let [v1, v2]=[a:v1, a:v2]
let list=[]
while v1 || v2
let [nv1, nv2]=[v1/2, v2/2]
call add(list, ((nv1*2!=v1)||(nv2*2!=v2)))
let [v1, v2]=[nv1, nv2]
endwhile
let r=0
while !empty(list)
let r=(r*2) + remove(list, -1)
endwhile
return r
endfunction
(These functions are defined in my stuf.vim plugin, but you should not use it as
the wrapper that allows using them outside of the plugin, uses a very slow
argument checks).
Текст сообщения:
> bitwise logical operators
>
> Are there bitwise logical operators (and, or, xor) for vim?
No comments:
Post a Comment