美文网首页
LUA 16进制数据转换字符串学习

LUA 16进制数据转换字符串学习

作者: 0学习 | 来源:发表于2018-03-01 12:54 被阅读0次

    截获了16进制的数据包,如何通过UDP协议发给制定设备呢,LUA中对16进制支持还是不太友好。试过几个函数不理想。没有准确的将数据发送出去。下面写了一段测试代码

    str="1"
    str1="\x01\x00\x43\xac"   
    --lua 16进制可以用这样的方法表示
    a=string.char("0x01")..string.char("0x00")..string.char("0x43")..string.char("0xac") 
     --这里用string.char这个函数获得16进制整数对应的数据。不是ascii吗。 要获得ascii要用到 string.byte这个函数。
    if str1==a then ---比较两个赋值语句的结果
        print("same")
        else print("no same")
        end
        print("str1 is:"..str1) --这里print函数无法打印出来特殊的16进制数据,除非是16进制数据正好等于ascii码的值。
        print("a is:"..a) --同上
    --print(string.format("%#x",str))
    print(string.char(66))  -ascii转字符
    print(string.char("0x01")..string.char("0x01")..string.char("0xac"))
    print(string.byte("0x01"))
    print(string.char("0x00"))
    print(string.char("1"))
    print("this is 1 ascii:"..string.byte(1))
    print("This is hex 0xac :"..string.char("0xac"))
    print("This is hex 0xa :"..string.char("0xa"))
    if string.char("0xa")==string.char("0x0a")  ---这里默认给单位数据前加了一个0
        then print("OK")
    
    else print("NO")
        end
    

    相关文章

      网友评论

          本文标题:LUA 16进制数据转换字符串学习

          本文链接:https://www.haomeiwen.com/subject/tcegxftx.html