change default byte order in bit_converter to BE and fix byte manipulation functions

This commit is contained in:
MihailRis 2024-12-30 06:29:52 +03:00
parent aad0ea84eb
commit 9490d1f7ea

View File

@ -39,7 +39,7 @@ local toLEConvertors =
BE = function(bytes) return reverse(bytes) end BE = function(bytes) return reverse(bytes) end
} }
bit_converter.default_order = "LE" bit_converter.default_order = "BE"
local function fromLE(bytes, orderTo) local function fromLE(bytes, orderTo)
if orderTo then if orderTo then
@ -170,17 +170,17 @@ end
local function uint32ToBytes(int, order) local function uint32ToBytes(int, order)
return fromLE({ return fromLE({
maskHighBytes(bit.rshift(int, 24)), maskHighBytes(int),
maskHighBytes(bit.rshift(int, 16)),
maskHighBytes(bit.rshift(int, 8)), maskHighBytes(bit.rshift(int, 8)),
maskHighBytes(int) maskHighBytes(bit.rshift(int, 16)),
maskHighBytes(bit.rshift(int, 24))
}, order) }, order)
end end
local function uint16ToBytes(int, order) local function uint16ToBytes(int, order)
return fromLE({ return fromLE({
maskHighBytes(bit.rshift(int, 8)), maskHighBytes(int),
maskHighBytes(int) maskHighBytes(bit.rshift(int, 8))
}, order) }, order)
end end
@ -206,14 +206,14 @@ function bit_converter.int64_to_bytes(int, order)
end end
return fromLE({ return fromLE({
maskHighBytes(bit.rshift(int, 56)), maskHighBytes(int),
maskHighBytes(bit.rshift(int, 48)),
maskHighBytes(bit.rshift(int, 40)),
maskHighBytes(bit.rshift(int, 32)),
maskHighBytes(bit.rshift(int, 24)),
maskHighBytes(bit.rshift(int, 16)),
maskHighBytes(bit.rshift(int, 8)), maskHighBytes(bit.rshift(int, 8)),
maskHighBytes(int) maskHighBytes(bit.rshift(int, 16)),
maskHighBytes(bit.rshift(int, 24)),
maskHighBytes(bit.rshift(int, 32)),
maskHighBytes(bit.rshift(int, 40)),
maskHighBytes(bit.rshift(int, 48)),
maskHighBytes(bit.rshift(int, 56))
}, order) }, order)
end end
@ -298,9 +298,10 @@ function bit_converter.bytes_to_uint32(bytes, order)
bit.bor( bit.bor(
bit.bor( bit.bor(
bit.bor( bit.bor(
bit.lshift(bytes[1], 24), bytes[1],
bit.lshift(bytes[2], 16)), bit.lshift(bytes[2], 8)),
bit.lshift(bytes[3], 8)),bytes[4]) bit.lshift(bytes[3], 16)),
bit.lshift(bytes[4], 24))
end end
function bit_converter.bytes_to_uint16(bytes, order) function bit_converter.bytes_to_uint16(bytes, order)
@ -312,8 +313,8 @@ function bit_converter.bytes_to_uint16(bytes, order)
return return
bit.bor( bit.bor(
bit.lshift(bytes[1], 8), bit.lshift(bytes[2], 8),
bytes[2], 0) bytes[1], 0)
end end
function bit_converter.bytes_to_int64(bytes, order) function bit_converter.bytes_to_int64(bytes, order)
@ -331,13 +332,13 @@ function bit_converter.bytes_to_int64(bytes, order)
bit.bor( bit.bor(
bit.bor( bit.bor(
bit.bor( bit.bor(
bit.lshift(bytes[1], 56), bit.lshift(bytes[8], 56),
bit.lshift(bytes[2], 48)), bit.lshift(bytes[7], 48)),
bit.lshift(bytes[3], 40)), bit.lshift(bytes[6], 40)),
bit.lshift(bytes[4], 32)), bit.lshift(bytes[5], 32)),
bit.lshift(bytes[5], 24)), bit.lshift(bytes[4], 24)),
bit.lshift(bit.band(bytes[6], 0xFF), 16)), bit.lshift(bit.band(bytes[3], 0xFF), 16)),
bit.lshift(bit.band(bytes[7], 0xFF), 8)),bit.band(bytes[8], 0xFF)) bit.lshift(bit.band(bytes[2], 0xFF), 8)),bit.band(bytes[1], 0xFF))
end end
function bit_converter.bytes_to_int32(bytes, order) function bit_converter.bytes_to_int32(bytes, order)