0
我在調用一個返回整數的函數,該整數代表16個二進制輸入的位域,每個顏色可以打開或關閉。Lua:檢測位域中的上升沿/下降沿
我試圖創建一個函數來獲取原狀態數和新狀態之間的變化,
例如
function getChanges(oldColors,newColors)
sampleOutput = {white = "",orange="added",magenta="removed" .....}
return sampleOutput
end
我已經試過減去newColors從oldColors新顏色的oldColors但這似乎導致混亂應多於1個值的變化。
這是爲了檢測來自多個輸入的上升沿/下降沿。
* *編輯:有似乎是一個subset of the lua bit api available
colors.white 1 0x1 0000000000000001
colors.orange 2 0x2 0000000000000010
colors.magenta 4 0x4 0000000000000100
colors.lightBlue 8 0x8 0000000000001000
colors.yellow 16 0x10 0000000000010000
colors.lime 32 0x20 0000000000100000
colors.pink 64 0x40 0000000001000000
colors.gray 128 0x80 0000000010000000
colors.lightGray 256 0x100 0000000100000000
colors.cyan 512 0x200 0000001000000000
colors.purple 1024 0x400 0000010000000000
colors.blue 2048 0x800 0000100000000000
colors.brown 4096 0x1000 0001000000000000
colors.green 8192 0x2000 0010000000000000
colors.red 16384 0x4000 0100000000000000
colors.black 32768 0x8000 1000000000000000
(也被認爲是此值的表,但我不能工作了語法爲markdown,它會出現stackoverflow忽略標準的html部分。)
Lua不帶有位運算符。如果使用第三方庫是一個選項,這裏是一個概述:http://lua-users.org/wiki/BitwiseOperators ...實際上,如果您使用的是Lua 5.2,那麼應該包含它們之一 – 2013-04-20 19:49:54
那裏似乎是一個子集,如果它不是5.2,我將它添加到問題中,但我仍然迷失。 http://computercraft.info/wiki/Bit_%28API%29 – 2013-04-20 19:53:34