首页 > 其他分享 >AWTK fscript 中的位操作扩展函数

AWTK fscript 中的位操作扩展函数

时间:2024-09-07 14:53:21浏览次数:7  
标签:位操作 示例 assert fscript AWTK print n1 bit n2


fscript 是 AWTK 内置的脚本引擎,开发者可以在 UI XML 文件中直接嵌入 fscript 脚本,提高开发效率。本文介绍一下 fscript 中的 位操作扩展函数

位操作扩展函数

1. &

位与运算。


原型
n1 & n2
示例
print(1 & 1)

2. |

位或运算。


原型
n1 | n2
示例
print(|(1, 2))

3.~

按位取反运算。


原型
~(n1)
示例
print(~1)

4.^

异或运算。


原型
n1^n2
示例
print(n1^n2)

5. <<

左移


原型
n1<<n2
示例
print(n1<<n2)

6. >>

右移


原型
n1>>n2
示例
print(n1>>n2)

7. bit_get

获取指定的位


原型
bit_get(n1, n2) => bool
示例
print(bit_get(0b1010, 1))

8. bit_set

设置指定的位


原型
bit_set(n1, n2) => value
示例
print(bit_set(0b1010, 0))

9. bit_clear

清除指定的位


原型
bit_clear(n1, n2) => value
示例
print(bit_clear(0b1010, 1))

10. bit_toggle

取反指定的位


原型
bit_toggle(n1, n2) => value
示例
print(bit_toggle(0b1010, 1))

更多示例

assert(bit_clear(0b0111, 1) == 0b0101)
assert(bit_clear(0b0111, 0) == 0b0110)

assert(bit_set(0b0, 0) == 0b1)
assert(bit_set(0b0, 1) == 0b10)
assert(bit_set(0b0, 2) == 0b100)

assert(bit_toggle(0b000, 0) == 0b1)
assert(bit_toggle(0b111, 1) == 0b101)
assert(bit_toggle(0b101, 2) == 0b1)

assert(bit_get(0b0111, 0))
assert(bit_get(0b0111, 1))
assert(!bit_get(0b0011, 2))

assert((1<<1) == 2)
assert((1<<2) == 4)
assert((1<<8) == 256)
assert(((0xf0112233 >> 24) & 0xff)  == 0xf0)


标签:位操作,示例,assert,fscript,AWTK,print,n1,bit,n2
From: https://blog.51cto.com/u_15314083/11945010

相关文章

  • AWTK 如何用 OpenGL 绘制图形
    在有GPU的情况下,AWTK使用OpenGL绘制图形。但是你会发现,如果自己在paint事件中使用OpenGL绘制图形,图形是无法显示的。原因是,AWTK采用nanovg绘制图形,而nanovg并不是在绘制时立即执行的,而是在整个界面绘制完成(EndFrame中)集中提交给GPU执行的。所以,如果在paint事......
  • 五、1 算数操作符&位操作符
    1、算数操作符(1)“/”得到一个整数商,不包含余数进行浮点数除法,操作符两端至少有一个浮点数(2)“%”取模,得到余数两端必须为整数2、位操作符(只适用于整型)(1)“&”按位与,有0为0,全为1则为1;(2)“|”按位或,有1为1,全为0则为0;(3)“^”按位异或,相同为0,相异为1.在十进制中异或,a......
  • 【C语言】位操作符详解 - 《开心消消乐》
    目录1.介绍2.位操作符列表3.按位操作符详解3.1按位与(&)示例输出3.2按位或(|)示例输出3.3按位异或(^)示例输出3.4按位取反(~)示例输出按位取反操作符(~)示例输出按位取反操作符详细解释3.5左移(<<)示例输出3.6右移(>>)示例输出4.应用实例4.1使用位掩码示例输出4.2......
  • 位操作符实战!
    一、例题(1)二进制中1的个数_牛客题霸_牛客网(nowcoder.com)https://www.nowcoder.com/practice/8ee967e43c2c4ec193b040ea7fbb10b8?tpId=13&tqId=11164&ru=/exam/oj怎么样?初看,是否一头雾水?哈哈,没事,俺也一样......
  • 【C语言】移位操作详解 - 《凌波微步 ! 》
    这里写目录标题C语言移位操作(BitwiseShiftOperators)详解1.移位操作符概述1.1左移操作符(`<<`)1.2右移操作符(`>>`)2.使用示例2.1左移操作符示例2.2右移操作符示例2.3有符号和无符号右移3.注意事项3.1超出位数范围的移位3.2移位操作的性能4.移位操......
  • 初阶《操作符详解》 3. 移位操作符
    3.移位操作符<< 左移操作符>> 右移操作符注:移动的是二进制位,移位操作符的操作数只能是整数。一个存储的二进制码分原码、反码、补码1.十进制数据的二进制表现形式就是原码,原码最左边的一个数字就是符号位,0为正,1为负。2.正的整数的原码、反码、补码相同3.负的......
  • C++ 20新特性之改进的位操作
    ......
  • >>>0是一个位操作符,具体解释一下,并给出几个使用示例和常见场景
    >>>是JavaScript中的无符号右移位运算符。它将操作数的所有位向右移动指定位数,丢弃被移出的位,并在左侧填充零。特别地,>>>0是一个常用的技巧,用于确保任何数字(包括负数)都被转换为无符号的32位整数。这意味着结果总是非负的,并且范围在0到2^32-1之间。具体解释符号位处理:在二进......
  • 移位操作搞定两数之商
    五一漫长的假期,外面的世界是人山人海,反而在家刷题算得上一个好的休闲方式。刚好我开始写这道题:Giventwointegers `dividend` and `divisor`,dividetwointegers **without** usingmultiplication,division,andmodoperator.Theintegerdivisionshouldtruncate......
  • C语言 ---- 位操作处理
    在C语言中,位操作是一种对整数的二进制位进行直接操作的技术。它们通常用于对位表示的数据进行快速、高效的操作。以下是C语言中常用的位操作:按位与(BitwiseAND):用&运算符执行,将两个操作数的对应位进行逻辑与操作,结果为1时,结果位为1,否则为0。result=num1&num2;按位或(B......