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正确,在这种特殊情况下,可以使用带符号的右移运算符,得到相同的结果。