路径:支持库 → 基础支持库 → 位运算。
硬约束
- 扁平命令:
位与(a, b),无对象前缀。 - 操作对象为整数二进制位;返回新整数,一般不改原变量(需自行赋值)。
取位/置位/翻转位的位索引越界时,取位返回 0;写位请先保证索引合法。- 算术运算见 数值运算。
快速开始
整数 f = 0
f = 置位(f, 0)
f = 置位(f, 3)
输出(取位(f, 3))
输出(位与(f, 0xFF))
输出(左移(1, 4))
输出(是否2的幂(16))
位运算
本分类共 20 条。
位与
- 签名:
整数 位与(整数 整数一, 整数 整数二) - 说明:对两个整数按位执行与运算。
- 参数一│整数 整数一: 第一个操作数。
- 参数二│整数 整数二: 第二个操作数。
位合并
- 签名:
整数 位合并(整数 目标, 整数 值, 整数 起始位, 整数 位数) - 说明:将值写入目标整数的指定位段。
- 参数一│整数 目标: 待写入的整数。
- 参数二│整数 值: 欲写入的值(超出段宽时截断)。
- 参数三│整数 起始位: 段起始位(从 0 起)。
- 参数四│整数 位数: 段长度。
位异或
- 签名:
整数 位异或(整数 整数一, 整数 整数二) - 说明:对两个整数按位执行异或运算。
- 参数一│整数 整数一: 第一个操作数。
- 参数二│整数 整数二: 第二个操作数。
位或
- 签名:
整数 位或(整数 整数一, 整数 整数二) - 说明:对两个整数按位执行或运算。
- 参数一│整数 整数一: 第一个操作数。
- 参数二│整数 整数二: 第二个操作数。
位掩码
- 签名:
整数 位掩码(整数 起始位, 整数 位数) - 说明:生成从起始位起连续若干位为 1 的掩码。
- 参数一│整数 起始位: 从 0 开始的最低置位位置。
- 参数二│整数 位数: 连续 1 的个数。
位计数
- 签名:
整数 位计数(整数 数值) - 说明:统计整数二进制表示中 1 的个数。
- 参数一│整数 数值: 欲统计的整数。
位非
- 签名:
整数 位非(整数 数值) - 说明:对整数按位取反。
- 参数一│整数 数值: 欲取反的整数。
前导零
- 签名:
整数 前导零(整数 数值) - 说明:统计整数最高位起连续 0 的个数。
- 参数一│整数 数值: 源整数。
取位
- 签名:
整数 取位(整数 数值, 整数 位索引) - 说明:返回整数指定位的值(0 或 1)。
- 参数一│整数 数值: 源整数。
- 参数二│整数 位索引: 从 0 开始的位序号。
取位段
- 签名:
整数 取位段(整数 数值, 整数 起始位, 整数 位数) - 说明:从整数中提取指定位段的无符号值。
- 参数一│整数 数值: 源整数。
- 参数二│整数 起始位: 段起始位(从 0 起)。
- 参数三│整数 位数: 段长度。
右移
- 签名:
整数 右移(整数 数值, 整数 位数) - 说明:将整数二进制位向右移动指定位数。
- 参数一│整数 数值: 源整数。
- 参数二│整数 位数: 右移位数(≥0)。
尾随零
- 签名:
整数 尾随零(整数 数值) - 说明:统计整数最低位起连续 0 的个数。
- 参数一│整数 数值: 源整数。
左移
- 签名:
整数 左移(整数 数值, 整数 位数) - 说明:将整数二进制位向左移动指定位数。
- 参数一│整数 数值: 源整数。
- 参数二│整数 位数: 左移位数(≥0)。
循环右移
- 签名:
整数 循环右移(整数 数值, 整数 位数) - 说明:将整数位向右循环移动,低位回卷至高位。
- 参数一│整数 数值: 源整数。
- 参数二│整数 位数: 循环右移位数。
循环左移
- 签名:
整数 循环左移(整数 数值, 整数 位数) - 说明:将整数位向左循环移动,高位回卷至低位。
- 参数一│整数 数值: 源整数。
- 参数二│整数 位数: 循环左移位数。
是否2的幂
- 签名:
逻辑 是否2的幂(整数 数值) - 说明:判断整数是否为 2 的正整数次幂。
- 参数一│整数 数值: 欲判断的整数。
最低位一
- 签名:
整数 最低位一(整数 数值) - 说明:返回整数中最低置 1 位的值(2 的幂)。
- 参数一│整数 数值: 源整数。
清除最低位一
- 签名:
整数 清除最低位一(整数 数值) - 说明:清除整数中最低的置 1 位,返回新值。
- 参数一│整数 数值: 源整数。
置位
- 签名:
整数 置位(整数 数值, 整数 位索引) - 说明:将整数指定位设为 1,返回新值。
- 参数一│整数 数值: 源整数。
- 参数二│整数 位索引: 从 0 开始的位序号。
翻转位
- 签名:
整数 翻转位(整数 数值, 整数 位索引) - 说明:翻转整数指定位(0↔1),返回新值。
- 参数一│整数 数值: 源整数。
- 参数二│整数 位索引: 从 0 开始的位序号。
易错对照
| 错误 | 正确 |
|---|---|
| 期望原地改变量 | 返回新值,需赋值 |
| 位索引越界 | 先保证合法;取位越界→0 |