<table class="text">
<tr class="li1"><td class="ln"><pre class="de1">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 let i = 0xe050 const j = i<<16 //-> 0xffffffffe0500000 结果不对。 查了下资料: *Number类型统一按浮点数处理,64位存储,整数是按最大54位来算最大最小数的,否则会丧失精度;某些操作(如数组索引还有位操作)是按32位处理的. 位移操作果然是按32位处理的* 于是改了下: let i = 0xe050 const j = i<<15 console.log(i,j,j*2)