From 3629e203070144b18dbec458b593cfd0bfede7ee Mon Sep 17 00:00:00 2001 From: Igor Timofeev Date: Thu, 20 Oct 2016 11:01:23 +0300 Subject: [PATCH] =?UTF-8?q?=D1=85=D1=83=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 18436 -> 18436 bytes lib/advancedLua.lua | 31 +++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/.DS_Store b/.DS_Store index 68bcc904ff22c2a28aa77163016541320e43502b..834de3721542292517ded5b6229634790392389a 100644 GIT binary patch delta 60 zcmV-C0K@-;kO72{0gz7tNwH7^A^`xCAtxNOa3Y%x0U5IlFpdfdWOHL|VsCG30ke=g S)B%(K5+IYV7bmm6JVpyTRTJ+3 delta 54 zcmV-60LlM^kO72{0gz7tNU=}@A^`!DAtxNOa3Y%x0T{CkFpdh7a3VCb;X0N9lTid_ MlWsIVvj{!>3d<)Ed;kCd diff --git a/lib/advancedLua.lua b/lib/advancedLua.lua index f6449a25..d125b52d 100755 --- a/lib/advancedLua.lua +++ b/lib/advancedLua.lua @@ -12,6 +12,7 @@ _G.filesystem = _G.filesystem or require("filesystem") _G.unicode = _G.unicode or require("unicode") +_G.bit32 = _G.bit32 or require("bit32") -------------------------------------------------- System extensions -------------------------------------------------- @@ -42,6 +43,36 @@ function swap(a, b) return b, a end +-------------------------------------------------- Bit32 extensions -------------------------------------------------- + +function bit32.numberToByteArray(number) + local byteArray = {} + while number > 0 do + table.insert(byteArray, 1, bit32.band(number, 0xFF)) + number = bit32.rshift(number, 8) + end + return byteArray +end + +function bit32.byteArrayToNumber(byteArray) + local number = byteArray[1] + for i = 2, #byteArray do + number = bit32.bor(byteArray[i], bit32.lshift(number, 8)) + end + return number +end + +function bit32.bitArrayToByte(bitArray) + local number = 0 + for i = 1, #bitArray do + number = bit32.bor(bitArray[i], bit32.lshift(number, 1)) + end + return number +end + +bit32.byteArrayFromNumber = bit32.numberToByteArray +bit32.numberFromByteArray = bit32.byteArrayToNumber + -------------------------------------------------- Math extensions -------------------------------------------------- function math.round(num)