用JavaScript写代码将硬盘序列号从16进制字符串转换为ASCII字符串,兼谈EditPlus和Edge浏览器对JavaScript脚本支持的一点差别

您所在的位置:网站首页 硬盘序列号简称 用JavaScript写代码将硬盘序列号从16进制字符串转换为ASCII字符串,兼谈EditPlus和Edge浏览器对JavaScript脚本支持的一点差别

用JavaScript写代码将硬盘序列号从16进制字符串转换为ASCII字符串,兼谈EditPlus和Edge浏览器对JavaScript脚本支持的一点差别

2023-10-17 10:13| 来源: 网络整理| 查看: 265

之前写的系统信息收集报告程序SysInfo的一个功能就是收集并报告系统中的硬盘序列号。在之前的测试中这项功能表现不错,但前两天用SysInfo收集一台电脑的信息时,显示的硬盘序列号与其它硬盘序列号读取程序显示的顺序不一样。于是着手对SysInfo的相关代码进行修改,由于读取到的硬盘序列号原始数据是一个16进制字符串,比如“20202020202020202020202039574d41374d5659”,我们首先要把这个16进制字符串转换成对应的ASCII,才好进一步做对比分析。

在这方面,直接用JavaScript应该是最方便的了。因为JavaScript提供了两个非常有用的函数:parseInt()和String.fromCharCode()。

一、parseInt() 首先说说parseInt()。

(一)功能:解析字符串并返回整数。(二)语法:

parseInt(string, radix) (三)参数说明: 参数描述string必需。要解析的字符串。允许前导和尾随空格。radix

可选。代表要使用的数字系统的数字(从 2 到 36)。

如果 radix 参数被省略,JavaScript 假定如下:

如果字符串以 "0x" 开头,则基数为 16(十六进制); 如果字符串以 "0" 开头,则基数为 8(八进制)(注:此特性已弃用); 如果字符串以任何其他值开头,则基数为 10(十进制)。

注意:只返回字符串中的第一个数字!

(四)返回值:

类型描述number

返回一个整数。

如果第一个字符不能转换为数字,则返回 NaN。

二、String.fromCharCode()

(一)功能:可接受一个指定的 Unicode 值,然后返回一个字符串。

(二)语法:

String.fromCharCode(numX,numX,...,numX)

(三)参数说明:

参数描述numX必需。一个或多个 Unicode 值,即要创建的字符串中的字符的 Unicode 编码。

(四)返回值:

类型描述String返回代表 Unicode 编码的字符。

为了方便使用,我用editplus设计了一web页面,在一个form中包括了四个部分:

一是输入待转换字符串的文本框;

二是选择待转换字符串的进制基数的radio,有2、8、10、16四个常用的选项,其中默认选定16进制;

三是输出转换后的ASCII的文本框;

四是实现转换功能的按钮。

代码如下:

String 2 ASCII

String 2 ASCII

待转换代码 :

代码进制基数:2进制;8进制;10进制;16进制

ASCII;   :

配套的JavaScrpit转换代码如下:

function Hex2ASCII() { var tHex = document.getElementById("txtHex").value; var iHexlen = tHex.length; if (0==iHexlen) { alert("请先输入代码!"); } else { var iScale = document.getElementById("frmScale").scale.value; if (null==iScale) { alert("请先选择待转换字符串的进制基数!"); } else { //alert(iScale); var r = ""; for (i=0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3