我有这个代码。请让我明白这段代码的实际含义

  for(var i = 0; i < input.length; i++)
  {
    x = input.charCodeAt(i);
    output += hex_tab.charAt((x >>> 4) & 0x0F)
           +  hex_tab.charAt( x        & 0x0F);
  }

什么是0x0F?而且,>>>是什么意思?

最佳答案

>>>是无符号按位右移运算符。 0x0F是一个十六进制数字,十进制等于15。它表示低四位,并转换位模式0000 1111&是按位的AND操作。
(x >>> 4) & 0x0F给您字节的高半字节。因此,如果您有6A,则基本上可以得到06:

6A = ((0110 1010 >>> 4) & 0x0F) = (0000 0110 & 0x0F) = (0000 0110 & 0000 1111) = 0000 0110 = 06
x & 0x0F给您字节的低半字节。因此,如果您拥有6A,那么您最终会得到0A
6A = (0110 1010 & 0x0F) = (0110 1010 & 0000 1111) = 0000 1010 = 0A

据我所知,它看起来像是对字符串中所有字符的各个半字节的值求和,也许是为了创建某种校验和。

关于javascript - 0x0F是什么意思?这段代码是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12989969/

10-12 13:04