decode.lua 434 B

1234567891011121314151617181920
  1. local import_mod = ...
  2. function import_mod.decode_uint16(str, ofs)
  3. ofs = ofs or 0
  4. local a, b = string.byte(str, ofs + 1, ofs + 2)
  5. return a + b * 0x100
  6. end
  7. local function lshift(x, by)
  8. return x * 2 ^ by
  9. end
  10. function import_mod.decode_uint32(data, offset)
  11. return (
  12. string.byte(data,1+offset) +
  13. lshift(string.byte(data,2+offset), 8) +
  14. lshift(string.byte(data,3+offset), 16) +
  15. lshift(string.byte(data,4+offset), 24)
  16. )
  17. end