Lua不同版本下的位操作

2021-08-21 13:35:39 字數 1027 閱讀 5215

lua提供對變數的位操作,雖然可能不如直接用底層c實現起來效率高,但是聊勝於無吧.lua歷經幾個大的版本變更,每個版本對應的位操作方式也是略有不同,本文主要記錄lua 5.0 版本之後的各種位操作方法。

lua 5.1版本使用乙個外部的bitlib庫,提供幾個位操作函式。

-- 引入bit庫

require "bit"

-- and操作

bit.band(a,b)

-- or操作

bit.bor(a,b)

-- xor操作

bit.bxor(a,b)

-- not操作

bit.bnot(a,b)

-- 左移n位

bit.lshift(a,n)

-- 右移n位

bit.rshift(a,n)

lua 5.2版本提供了乙個內建庫bit32,同樣以函式的形式提供位操作。

-- 引入內建bit32庫

require "bit32"

-- and操作

bit32.band(a,b)

-- or操作

bit32.bor(a,b)

-- xor操作

bit32.bxor(a,b)

-- not操作

bit32.bnot(a,b)

-- 左移n位

bit32.lshift(a,n)

-- 右移n位

bit32.rshift(a,n)

自lua 5.3版本後,lua像其他語言一樣開始提供內建操作符實現位操作,但是操作符代表的含義可能與c++\python之類的略有不同。

-- and操作

a & b

-- or操作

a | b

-- xor操作

a ~ b

-- not操作

~a-- 左移n位

a << n

-- 右移n位

a >> n

lua中位運算操作

description filename bit.lua this module provides a selection of bitwise operations.history initial version created by 陣雨 2005 11 10.notes bit for i 1...

OleDb操作不同版本的Excel

1 操作excel2007以前 不含2007 的連線字串 string strconn provider microsoft.jet.oledb.4.0 data source excelfilepath extended properties excel 8.0 hdr yes imex 1 此連...

Android 不同版本下Bitmap建立差異

1.問題描述 乙個雪花效果,在android4.0以下系統正常執行,但是在android4.1上異常退出。2.問題定位 看一段 private bitmap mflakeimage null private bitmap mflakeimagetemp null mflakeimagetemp bi...