[英]What does 0x0F mean? And what does this code mean?
我有這個代碼。 請讓我明白這段代碼的實際含義
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
據我所知,它看起來像是對字符串中所有字符的各個半字節的值求和,也許是為了創建某種校驗和。
0x0f
是一個字節的十六進制表示。 具體來說,位模式00001111
它獲取字符的值,將其向右移動 4 位( >>> 4
,它是一個無符號移位),然后使用上面的模式執行按位AND
- 例如忽略最左邊的 4 位導致數字 0-15。
然后它將該數字添加到原始字符最右邊的 4 位(第二個& 0x0F
沒有移位),另一個 0-15 數字。
0x0F
是十六進制數。 而>>>
是按位右移運算符。
我有這個代碼。 請讓我明白這段代碼的實際含義
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? 而且,>>>是什么意思?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.