在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ js中一個小數(shù)與其他數(shù)字進行或運算結(jié)果為整數(shù),求指教?

js中一個小數(shù)與其他數(shù)字進行或運算結(jié)果為整數(shù),求指教?

javascript中一個小數(shù)與其他數(shù)字進行或運算,為什么結(jié)果是一個整數(shù)?

var a = 1.21;
a.toString(2) //1.00110101110000101000111101011100001010001111010111
var b = 0;//0
a|b//結(jié)果為1

按理說

   1.21    1.00110101110000101000111101011100001010001111010111
   0.00    0.00000000000000000000000000000000000000000000000000
   -------------------------------------------------------------------------
 |(或運算)  1.00110101110000101000111101011100001010001111010111
 
 結(jié)果不應(yīng)該還是1.21嗎?為什么是1呢 ?求指教
回答
編輯回答
眼雜

事實上,JS的所有數(shù)據(jù)都是 double 型的,也就是64位浮點型,并按照IEEE754標準進行保存。

但是在做位運算的時候要對兩個數(shù)進行 toInt32 進行類型轉(zhuǎn)換(>>>toUint32), 然后按照32位整型的bits 進行位運算,運算結(jié)果也是按照Int32或是Uint32 進行解釋,再轉(zhuǎn)換成double

function toUint32(x) { return x>>>0;}
function toInt32(x) { return x>>0;}

toUint32(-1); // 4294967295 === 2^32 - 1
toInt32(-1); // -1
toInt32(1.21); // 1

具體可一參考 ES標準:http://www.ecma-international...

2017年12月3日 21:36
編輯回答
蟲児飛

位運算不支持小數(shù),會向下取整

2017年3月31日 03:39