/**此为java中Character类中的方法 * @param ch * @param radix */ function digit(ch,radix) { var value = -1; if (radix >= 2 && radix <= 36) { console.log("ch:",ch) var val = getProperties(ch); console.log("val:",val) var kind = val & 0x1F; if (kind == 9) { value = ch + ((val & 0x3E0) >> 5) & 0x1F; } else if ((val & 0xC00) == 0x00000C00) { // Java supradecimal digit value = (ch + ((val & 0x3E0) >> 5) & 0x1F) + 10; } } return (value < radix) ? value : -1; } function getProperties(ch) { var A=new Array(); var A_DATA = "\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u5800\u400F\u5000\u400F\u5800\u400F\u6000\u400F\u5000\u400F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u5000\u400F\u5000\u400F\u5000\u400F\u5800\u400F\u6000\u400C\u6800"+String.fromCharCode("24")+"\u6800"+String.fromCharCode("24")+"\u2800"+String.fromCharCode("24")+"\u2800\u601A\u2800"+String.fromCharCode("24")+"\u6800"+String.fromCharCode("24")+"\u6800"+ String.fromCharCode("24")+"\uE800"+ String.fromCharCode("21")+"\uE800"+String.fromCharCode("22")+ "\u6800"+String.fromCharCode("24")+"\u2000"+String.fromCharCode("25")+"\u3800"+String.fromCharCode("24")+"\u2000"+String.fromCharCode("20")+ "\u3800"+String.fromCharCode("24")+ "\u3800"+String.fromCharCode("24")+"\u1800\u3609\u1800\u3609\u1800\u3609\u1800\u3609\u1800\u3609\u1800\u3609\u1800\u3609\u1800\u3609\u1800\u3609\u1800\u3609\u3800"+String.fromCharCode("24")+"\u6800"+String.fromCharCode("24")+ "\uE800"+String.fromCharCode("25")+"\u6800"+String.fromCharCode("25")+"\uE800"+String.fromCharCode("25")+"\u6800"+String.fromCharCode("24")+"\u6800"+String.fromCharCode("24")+"\x82\u7FE1\x82\u7FE1\x82" A_DATA=A_DATA+ "\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\uE800"+ String.fromCharCode("21")+"\u6800"+String.fromCharCode("24")+"\uE800"+String.fromCharCode("22")+ "\u6800"+String.fromCharCode("27")+ "\u6800\u5017\u6800"+String.fromCharCode("27")+ "\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\uE800"+ String.fromCharCode("21")+"\u6800"+String.fromCharCode("25")+"\uE800"+String.fromCharCode("22")+ "\u6800"+String.fromCharCode("25")+"\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u5000\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800" A_DATA=A_DATA+ "\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u3800"+String.fromCharCode("12")+ "\u6800"+String.fromCharCode("24")+"\u2800\u601A\u2800\u601A\u2800\u601A\u2800\u601A\u6800"+ String.fromCharCode("28")+ "\u6800"+String.fromCharCode("24")+"\u6800"+String.fromCharCode("27")+ "\u6800"+String.fromCharCode("28")+ String.fromCharCode("0")+"\u7005\uE800"+String.fromCharCode("29")+ "\u6800"+String.fromCharCode("25")+"\u4800\u1010\u6800"+String.fromCharCode("28")+ "\u6800"+String.fromCharCode("27")+ "\u2800"+String.fromCharCode("28")+ "\u2800"+String.fromCharCode("25")+"\u1800\u060B\u1800\u060B\u6800"+String.fromCharCode("27")+ "\u07FD\u7002\u6800"+String.fromCharCode("24")+"\u6800"+String.fromCharCode("24")+"\u6800"+String.fromCharCode("27")+ "\u1800\u050B"+String.fromCharCode("0")+"\u7005\uE800"+String.fromCharCode("30")+ "\u6800\u080B\u6800\u080B\u6800\u080B\u6800"+String.fromCharCode("24")+"\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001" A_DATA=A_DATA+ "\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\u6800"+String.fromCharCode("25")+"\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\u07FD\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\u6800"+ String.fromCharCode("25")+"\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\u061D\u7002" // var A_DATA = "\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u5800\u400F\u5000\u400F\u5800\u400F\u6000\u400F\u5000\u400F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u5000\u400F\u5000\u400F\u5000\u400F\u5800\u400F\u6000\u400C\u6800"+("24").charCodeAt()+"\u6800"+("24").charCodeAt()+"\u2800"+("24").charCodeAt()+"\u2800\u601A\u2800"+("24").charCodeAt()+"\u6800"+("24").charCodeAt()+"\u6800"+ ("24").charCodeAt()+"\uE800"+ ("21").charCodeAt()+"\uE800"+("22").charCodeAt()+ "\u6800"+("24").charCodeAt()+"\u2000"+("25").charCodeAt()+"\u3800"+("24").charCodeAt()+"\u2000"+("20").charCodeAt()+ "\u3800"+("24").charCodeAt()+ "\u3800"+("24").charCodeAt()+"\u1800\u3609\u1800\u3609\u1800\u3609\u1800\u3609\u1800\u3609\u1800\u3609\u1800\u3609\u1800\u3609\u1800\u3609\u1800\u3609\u3800"+("24").charCodeAt()+"\u6800"+("24").charCodeAt()+ "\uE800"+("25").charCodeAt()+"\u6800"+("25").charCodeAt()+"\uE800"+("25").charCodeAt()+"\u6800"+("24").charCodeAt()+"\u6800"+("24").charCodeAt()+"\x82\u7FE1\x82\u7FE1\x82" // A_DATA=A_DATA+ "\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\x82\u7FE1\uE800"+ ("21").charCodeAt()+"\u6800"+("24").charCodeAt()+"\uE800"+("22").charCodeAt()+ "\u6800"+("27").charCodeAt()+ "\u6800\u5017\u6800"+("27").charCodeAt()+ "\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\x81\u7FE2\uE800"+ ("21").charCodeAt()+"\u6800"+("25").charCodeAt()+"\uE800"+("22").charCodeAt()+ "\u6800"+("25").charCodeAt()+"\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u5000\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800" // A_DATA=A_DATA+ "\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u4800\u100F\u3800"+("12").charCodeAt()+ "\u6800"+("24").charCodeAt()+"\u2800\u601A\u2800\u601A\u2800\u601A\u2800\u601A\u6800"+ ("28").charCodeAt()+ "\u6800"+("24").charCodeAt()+"\u6800"+("27").charCodeAt()+ "\u6800"+("28").charCodeAt()+ ("0").charCodeAt()+"\u7005\uE800"+("29").charCodeAt()+ "\u6800"+("25").charCodeAt()+"\u4800\u1010\u6800"+("28").charCodeAt()+ "\u6800"+("27").charCodeAt()+ "\u2800"+("28").charCodeAt()+ "\u2800"+("25").charCodeAt()+"\u1800\u060B\u1800\u060B\u6800"+("27").charCodeAt()+ "\u07FD\u7002\u6800"+("24").charCodeAt()+"\u6800"+("24").charCodeAt()+"\u6800"+("27").charCodeAt()+ "\u1800\u050B"+("0").charCodeAt()+"\u7005\uE800"+("30").charCodeAt()+ "\u6800\u080B\u6800\u080B\u6800\u080B\u6800"+("24").charCodeAt()+"\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001" // A_DATA=A_DATA+ "\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\u6800"+("25").charCodeAt()+"\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\x82\u7001\u07FD\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\u6800"+ ("25").charCodeAt()+"\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\x81\u7002\u061D\u7002" // var str="䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ堀䀏倀䀏堀䀏怀䀏倀䀏䠀ဏ䠀ဏ䠀ဏ䠀" // str+="ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ倀䀏倀䀏倀䀏堀䀏怀䀌栀栀" // str+="⠀⠀怚⠀栀栀栀 㠀 㠀㠀᠀㘉᠀㘉᠀㘉᠀㘉᠀㘉᠀㘉᠀㘉᠀㘉᠀㘉᠀㘉㠀栀" // str+="栀栀栀‚翡‚翡‚翡‚翡‚翡‚翡‚翡‚翡‚翡‚翡‚翡‚翡‚翡‚翡‚翡‚翡‚翡‚翡‚" // str+="翡‚翡‚翡‚翡‚翡‚翡‚翡‚翡栀栀栀倗栀翢翢翢翢翢翢翢翢" // str+="翢翢翢翢翢翢翢翢翢翢翢翢翢翢翢翢翢翢栀栀䠀" // str+="ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ倀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ" // str+="䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ䠀ဏ㠀 栀⠀怚⠀" // str+="怚⠀怚⠀怚栀栀栀栀瀅栀䠀တ栀栀⠀⠀᠀؋᠀؋栀߽瀂栀栀栀᠀ԋ瀅" // str+="栀ࠋ栀ࠋ栀ࠋ栀‚瀁‚瀁‚瀁‚瀁‚瀁‚瀁‚瀁‚瀁‚瀁‚瀁‚瀁‚瀁‚瀁‚瀁‚瀁‚瀁‚瀁‚" // str+="瀁‚瀁‚瀁‚瀁‚瀁‚瀁栀‚瀁‚瀁‚瀁‚瀁‚瀁‚瀁‚瀁߽瀂瀂瀂瀂瀂瀂瀂瀂" // str+="瀂瀂瀂瀂瀂瀂瀂瀂瀂瀂瀂瀂瀂瀂瀂瀂栀瀂瀂瀂瀂瀂" // str+="瀂瀂؝瀂" var data = A_DATA.split("") console.log(data,data.length) if(data.length != (256 * 2))return var i = 0; var j = 0; while (i < (256 * 2)) { var entry = data[i++] << 16; A[j++] = entry | data[i++]; } var offset = ch; var props = A[offset]; // console.log(ch) return props; } /** * 16进制的字符串表示转成字节数组 * * @param hexString 16进制格式的字符串 * @return 转换后的字节数组 **/ export function toByteArray(hexString) { var byteArray=null; hexString=hexString+'' if(hexString !=null && hexString !="") { // console.log(hexString) hexString = hexString.replace(/ /g, ""); byteArray = new Array(hexString.length/2); var k = 0; for (var i = 0; i < byteArray.length; i++) {//因为是16进制,最多只会占用4位,转换成字节需要两个16进制的字符,高位在先 var high = parseInt(hexString.charAt(k), 16) & 0xff; var low = parseInt(hexString.charAt(k + 1), 16) & 0xff; byteArray[i] = high << 4 | low; k += 2; } } return byteArray; } export function intToRegisters(v) { var registers = new Array(); registers[0] = 0xff & (v >> 24); registers[1] = 0xff & (v >> 16); registers[2] = 0xff & (v >> 8); registers[3] = 0xff & v; return registers; } /**获取校验码除去包头相加取反*/ export function check_string(byt) { //字节数组转为16进制字符串/2后的长度 var size=BinaryToHexString2(byt).length/2; var hex_=hex(BinaryToHexString2(byt)); // console.log(byt) // console.log(hex_,BinaryToHexString2(byt)) //求和 var sum=0; for(var i=0;i> 4)).valueOf(); hex += (hexStr.charAt(bytes[b] & 0x0F)).valueOf(); result += hex + ""; } return result; } /** * 16进制表示的字符串转换为字节数组 * * @param hexString 16进制表示的字符串 * @return byte[] 字节数组 */ export function hexStringToByteArray(hexString) { hexString=hexString+'' hexString = hexString.replace(/ /g, ""); var len = hexString.length; var bytes = new Array(len / 2); for (var i = 0; i < len; i += 2) { // 两位一组,表示一个字节,把这样表示的16进制字符串,还原成一个字节 bytes[i / 2] = (parseInt(hexString.charAt(i), 16) << 4) + parseInt(hexString.charAt(i+1), 16); } return bytes; } /**16进制转为10进制*/ export function decodeHEX(hexs){ // console.log(hexs) hexs='0x'+hexs // console.log(hexs) var bigint=eval(hexs).toString(16); // console.log(bigint) var numb=parseInt(bigint); // console.log(numb) return numb; } /**将16进制字符串转为hex字符串数组2个字符串一个*/ export function hex(message) { var size=message.length/2; var hex_=new Array(size); for(var i=0;i