帮忙解释下关于数字转16进制的代码,js转成ASP

极语言中文编程 2012-10-20 06:56:31
看到两个代码,一个是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}
...全文
89 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
原来是这样,数字转成hex字符串,然后再转成字节组,结果和数字在内存中的数位正好相反。
问题是asp或VB的Hex函数只能转换长整数。而这个数字有时候超过11位了。有什么好的计算方法吗?
  • 打赏
  • 举报
回复
其实我已经明白了,是数字转成字符串,然后加空字符。然后转成二进制字节流。因为是数字,转换之后是无效的字符,在网页里显示不出来。而md5结果转成二进制之后,应该是有效字符。也就是乱码。
  • 打赏
  • 举报
回复
没分了,我赚分再增加,代码没换行,我再发一下。
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}

87,901

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧