硬汉嵌入式论坛

 找回密码
 立即注册
查看: 805|回复: 2
收起左侧

[Lua] H7-TOOL的Lua位操作实现

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107122
QQ
发表于 2022-7-31 00:29:59 | 显示全部楼层 |阅读模式
bit manipulation - "Bitwise AND" in Lua - Stack Overflow

[Lua] 纯文本查看 复制代码
function bitand(a, b)
    local result = 0
    local bitval = 1
    while a > 0 and b > 0 do
      if a % 2 == 1 and b % 2 == 1 then -- test the rightmost bits
          result = result + bitval      -- set the current bit
      end
      bitval = bitval * 2 -- shift left
      a = math.floor(a/2) -- shift right
      b = math.floor(b/2)
    end
    return result
end
print("=======")
print(bitand(tonumber("1101", 2), tonumber("1001", 2)))



image.png
回复

使用道具 举报

747

主题

1049

回帖

3295

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3295
发表于 2022-8-1 09:36:43 | 显示全部楼层
Lua 5.3 已经直接支持位操作了。

print(tonumber("1101", 2)  & tonumber("1001", 2))


--        &        按位与
--        |        按位或
--        ~        按位异或
--        >>        右移
--        <<        左移
--        ~        按位非
--        %   取模
--        ^   乘方
--        -   取负

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107122
QQ
 楼主| 发表于 2022-8-1 10:07:47 | 显示全部楼层
armfly 发表于 2022-8-1 09:36
Lua 5.3 已经直接支持位操作了。

print(tonumber("1101", 2)  & tonumber("1001", 2))

对,我们的是5.3,已经支持了,饶了个大远,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-19 09:46 , Processed in 0.304324 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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