繁体   English   中英

如何在 JavaScript 中将 ASCII 转换为十六进制?

[英]how to convert ASCII to Hexadecimal in JavaScript?

首先,我不太确定 ASCII 是什么(我用谷歌搜索过,但没有理解),无论如何我正在为学习者解决一个练习并遇到这个问题,答案是以下代码。

我在这段代码中发现了一些难以理解的语句和概念,如下所示:

  1. For 循环的 2 个初始化var n = 0, l = str.length的目的是什么?

  2. 什么是charCodeAt(n)

    我了解到它是 unicode,但是这对这个函数有什么影响,n 与 charCodeAt 有何关系,以及两者与十六进制到 ASCII 的转换有何关系?

  3. 为什么.toString()分配给它的值为 16。

    在我看来,它必须与十六进制有关,因此是 16,但它与将十六进制转换为 ASCII 有什么关系?

.

function ascii_to_hexa(str)  
{  
  var arr1 = [];  
  for (var n = 0, l = str.length; n < l; n ++)   
  {  
    var hex = Number(str.charCodeAt(n)).toString(16);  
    arr1.push(hex);  
  }  
  return arr1.join('');  
}
var n = 0, l = str.length; n < l; n ++

n小于字符串长度时执行循环 - 基本上,循环遍历字符串中的每个字符。 当你到达字符串的末尾时,停止循环。

n是字符串中循环位于 (1, 2, 3, ...) 处的字符,因此是要转换的字符。

16 是计算字符值时使用的基数。 它被称为基数。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toString

  1. For 循环的 2 inizialtions(var n = 0, l = str.length) 的目的是什么?

    变量l只是存储str.length的值。 你可以写for (var n = 0; n < str.length; n ++)代替,它也是有效的。

  2. 什么是 charCodeAt(n),我知道它是 unicode,但是这对这个函数有什么影响,n 与 charCodeAt 有何关系,以及两者与十六进制到 ASCII 的转换有何关系?

    charCodeAt你可以自己阅读,它在文档中有很好的描述: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt

  3. 为什么 .toString() 分配给它的值为 16,在我看来它必须与十六进制因此为 16,但它与将十六进制转换为 ASCII 有什么关系?

    toString()有一个基数参数,指定要使用的基数。 这告诉它使用基数 16。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM