[英]Adding two hex numbers javascript with bit shift
我試圖以下列方式在JavaScript中添加兩個數字,以十六進制表示:
var a = 0x0028 << 16 + 0x0010;
我期望得到的是0x00280010。 不幸的是,JavaScript等於40(當然是0x0028)。 如果我在不加0x0010的情況下移位了這些位,那么一切正常,我得到2621440,即0x280000。 為什么加上0x0010會產生這樣的結果。 我不擅長這種算術,我是在做還是期望有什么問題? 謝謝大家 :)
使用方括號: +
優先於<<
。
var a = (0x0028 << 16) + 0x0010 // note the brackets.
請參閱: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence
將移位放在方括號內,因為它的優先級低於加號( 請參見本頁 )
a = (0x0028 << 16) + 0x0010
> 2621456
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.