YStudio Y++

位运算(基础支持库)

Y++ / YStudio 开发文档 · 一点滴

路径:支持库 → 基础支持库 → 位运算。

硬约束

  1. 扁平命令:位与(a, b),无对象前缀。
  2. 操作对象为整数二进制位;返回新整数,一般不改原变量(需自行赋值)。
  3. 取位 / 置位 / 翻转位 的位索引越界时,取位 返回 0;写位请先保证索引合法。
  4. 算术运算见 数值运算。

快速开始

整数 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

相关

数值运算 · 字节集