Javascript 0x0F是什么意思?这个代码是什么意思?

Javascript 0x0F是什么意思?这个代码是什么意思?,javascript,Javascript,我有这个密码。请让我明白这个代码的真正含义 for(var i = 0; i < input.length; i++) { x = input.charCodeAt(i); output += hex_tab.charAt((x >>> 4) & 0x0F) + hex_tab.charAt( x & 0x0F); } for(变量i=0;i>>4)和0x0F) +十六进制制表符(x&0x

我有这个密码。请让我明白这个代码的真正含义

  for(var i = 0; i < input.length; i++)
  {
    x = input.charCodeAt(i);
    output += hex_tab.charAt((x >>> 4) & 0x0F)
           +  hex_tab.charAt( x        & 0x0F);
  }
for(变量i=0;i>>4)和0x0F)
+十六进制制表符(x&0x0F);
}

什么是0x0F?而且,>>>平均值?

0x0F
是十六进制的数字。
>>
是按位右移运算符。

>
是无符号按位右移运算符
0x0F
是十六进制数,在十进制中等于15。它表示低位的四位,并转换位模式
0000 1111
&
是一种按位
操作

(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

据我所知,它似乎是将字符串中所有字符的各个半字节的值相加,也许是为了创建某种校验和。

0x0f
是字节的十六进制表示形式。具体地说,位模式
00001111

它获取字符的值,将其向右移动4位(
>>4
,它是an),然后使用上面的模式执行逐位
,例如忽略最左边的4位,结果是数字0-15


然后,它将该数字添加到原始字符最右边的4位(第2个
&0x0F
不带移位),另一个0-15数字。

0x0F
是字节的十六进制表示形式。具体来说,位模式
00001111
好,那么这个表达式是如何使它在那里工作的呢?(x>>>4)&0x0F'如何返回整数值,因为chatAt()函数需要整数inputOkay,请给出转换为PHP的相同代码。我在将其转换为PHP时遇到了很多问题。如何在PHP中执行相同的过程?所有操作都可以在PHP中以相同的方式完成。对于Syntax来说,
>>
并不是简单的右移。它是一个无符号右移,因此它忽略符号位。@VivinPaliath True-但随后它忽略最左边的4位。。。我应该澄清一下though@Basic正确,在这种特殊情况下,可以使用带符号的右移运算符,得到相同的结果。