簡體   English   中英

0x0F 是什么意思? 這段代碼是什么意思?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM