aar里各种字符和数据格式相互转换总结
By
admin
at 2017-12-10 • 0人收藏 • 2955人看过
四字节转换为浮点数方法一:
利用TCC编译器来调用C语言,通过C语言直接转换
//aardio调用C语言函数 var code = /**** #include <stdio.h> #include <stdlib.h> int func_c (const char *msg) { io_reopen(); //打开控制台窗口 unsigned char tempc[4]; tempc[0]=0x06; tempc[1]=0x01; tempc[2]=0xfe; tempc[3]=0x43; float tempf; memcpy(&tempf,&tempc[0],4); printf("%f\n",tempf); return 0; } ****/ import console; import tcc; var vm = tcc( ); //创建TCC编译器 vm.compile(code); //编译C源码 //调用C函数 var ret = vm.func_c( string.fromto("测试一下") //注意tcc是ansi编码,aardio是utf8,需要转换一下 ); console.log( "C函数返回值", ret ) console.pause();
6 个回复 | 最后更新于 2017-12-10
//进制转换 //用格式化函数可以实现数字的进制转换 io.open() //数字转换为二进制字符串 str = string.format("%b",23 ); io.print(str) //二进制字符串转换为数字 n = tonumber(str,2) io.print(n) //数字转换为八进制字符串 str = string.format("%o",23 ); io.print(str) //八进制字符串转换为数字 n = tonumber(str,8) io.print(n) //数字转换为十六进制字符串 str = string.format("%x",23 ); io.print(str) //十六进制字符串转换为数字 n = tonumber(str,16) io.print(n) execute("pause")
import console; //acsii转换为HEX码 var Hex=function(data,len){ var str=""; for(i=1;len;1){ str = str++" "++string.right(string.format("%X", data[ i ]),2);//默认转换成有符号字节,因此取最右边两位 HEX码 } return str; } //hex转ascii var Ascii=function(data){ var data = string.replace(data," ",""); var str=""; for(i=1;#data;2){ str =str ++ string.pack( eval("0x"++data[[i]]++data[[i+1]] )); } return str; } var ssss = "64 65 66 67 68 69"; console.log(Ascii(ssss)) console.log(eval("0x64")) console.log(string.pack(eval("0x64"))) console.pause(true);
登录后方可回帖
经过qq群群主大K指导,下面的方式更简洁:
利用结构体转换函数可以实现
效果和上面的一样