簡體   English   中英

用移位將兩個十六進制數字javascript相加

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

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