找回密码
 register

QQ登录

只需一步,快速开始

搜索
查看: 9|回复: 0

[自写函数] 新源端X64位 Lua5.0 bit32 函数清单

[复制链接]
  • 打卡等级:本地老炮
  • 打卡总天数:377
  • 打卡月天数:25
  • 打卡总奖励:375
  • 最近打卡:2025-12-25 08:50:09
Waylee 发表于 2025-12-25 23:36 | 显示全部楼层 |阅读模式 | Google Chrome | Windows 10

马上注册,查看网站隐藏内容!!

您需要 登录 才可以下载或查看,没有账号?register

×

适用版本:新源端Lua 5.0.1
下载链接:DLL动态库下载

bit32 函数清单

1) 逻辑运算

  • bit32.band(x1, x2, ...)
    按位与 AND(可变参数)
    例:bit32.band(7, 3) --> 3

  • bit32.bor(x1, x2, ...)
    按位或 OR(可变参数)
    例:bit32.bor(1, 2, 4) --> 7

  • bit32.bxor(x1, x2, ...)
    按位异或 XOR(可变参数)
    例:bit32.bxor(5, 3) --> 6

  • bit32.bnot(x)
    按位取反 NOT(32 位)
    例:bit32.bnot(0) --> 0xFFFFFFFF

  • bit32.btest(x1, x2, ...)
    测试 AND 结果是否非 0(返回 boolean)
    例:bit32.btest(0x10, 0x10) --> true


2) 位移运算

  • bit32.lshift(x, disp)
    逻辑左移(disp 可为负,负数相当于右移)
    例:bit32.lshift(1, 3) --> 8

  • bit32.rshift(x, disp)
    逻辑右移(高位补 0;disp 可为负,负数相当于左移)
    例:bit32.rshift(8, 3) --> 1

  • bit32.arshift(x, disp)
    算术右移(保留符号位;负数高位补 1)
    例:bit32.arshift(0x80000000, 1) --> 0xC0000000


3) 循环旋转

  • bit32.lrotate(x, disp)
    32 位循环左旋
    例:bit32.lrotate(0x00000001, 1) --> 0x00000002

  • bit32.rrotate(x, disp)
    32 位循环右旋
    例:bit32.rrotate(0x00000001, 1) --> 0x80000000


4) 位域操作

  • bit32.extract(x, field [, width])
    x 中取出位域:从 field 开始取 width 位(默认 width=1)
    例:bit32.extract(0x12345678, 8, 8) --> 0x56

  • bit32.replace(x, v, field [, width])
    x 的位域替换为 v 的低 width
    例:bit32.replace(0x12345678, 0xAA, 8, 8) --> 0x1234AA78


使用约束

  • 参数应当是“32 位无符号整数值”(33.0 , OK3.14 会报错/不被接受)
您需要登录后才可以回帖 登录 | register

本版积分规则

雪舞知识库 ( 浙ICP备15015590号-1 | 萌ICP备20232229号|浙公网安备33048102000118号 ) |网站地图|天天打卡

GMT+8, 2025-12-26 03:56 , Processed in 0.100695 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表