看到两个代码,一个是md5的字符串转成二进制的,另一个是数字转16进制,看样子输出结果都是二进制字节流,但是这个输出结果就是看不到。前者代码跟这个类似,但能输出(出来是乱码)
代码如下:希望有高手转成VB的代码,或者ASP的。
function uin2hex(str){var maxLength=16;str=parseInt(str);var hex=str.toString(16);var len=hex.length;for(var i=len;i<maxLength;i++){hex="0"+hex}var arr=[];for(var j=0;j<maxLength;j+=2){arr.push("\\x"+hex.substr(j,2))}var result=arr.join("");eval('result="'+result+'"');return result}

解决方案 »

  1.   

    没分了,我赚分再增加,代码没换行,我再发一下。
    function uin2hex(str){
    var maxLength=16;str=parseInt(str);
    var hex=str.toString(16);var len=hex.length;
    for(var i=len;i<maxLength;i++){hex="0"+hex}
    var arr=[];for(var j=0;j<maxLength;j+=2){arr.push("\\x"+hex.substr(j,2))}
    var result=arr.join("");eval('result="'+result+'"');return result}
      

  2.   

    原来是这样,数字转成hex字符串,然后再转成字节组,结果和数字在内存中的数位正好相反。
    问题是asp或VB的Hex函数只能转换长整数。而这个数字有时候超过11位了。有什么好的计算方法吗?