javascript怎么進行按位求反

發(fā)布時間:2024-07-24
在javascript中,可以利用“~”操作符來實現(xiàn)按位求反,語法“~ 運算數(shù)”;“~”操作符可以將指定運算數(shù)轉為二進制整數(shù)形式,并對該二進制操作數(shù)逐位進行取反操作。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、dell g3電腦。
在javascript中,可以利用“~”操作符來實現(xiàn)按位求反。如~1 = -2,~-3=2,~true=-2,~false=-1
“~”操作符可以查看指定值的二進制表示形式,并對該二進制操作數(shù)逐位進行取反操作
第 1 步:把運算數(shù)轉換為 32 位的二進制整數(shù)。
第 2 步:逐位進行取反操作。
第 3 步:把二進制反碼轉換為十進制浮點數(shù)。
對 12 進行位非運算,則返回值為 -13。
console.log( ~ 12 ); //返回值-13
下圖以算式的形式解析了對 12 進行位非運算的過程。
如何按位取反計算
按位取反的運算規(guī)則步驟:
1、十進制轉成原碼
轉成二進制原碼,最高位是符號位,0為正數(shù),1為負數(shù)
十進制 —-> 原碼 1 —-> 00000001 -1 —-> 100000012、原碼轉成反碼
正數(shù)的反碼就是原碼,負數(shù)的反碼是符號位不變,其余位取反
十進制 —-> 原碼 —-> 反碼 1 —-> 00000001 —-> 00000001 -1 —-> 10000001 —-> 111111103、反碼轉成補碼
正數(shù)的補碼還是原碼,負數(shù)的補碼是在反碼的基礎上加1
十進制 —-> 原碼 —-> 反碼 —-> 補碼 1 —-> 00000001 —-> 00000001 —-> 00000001 -1 —-> 10000001 —-> 11111110 —-> 111111114、補碼取反得原碼
正整數(shù)補碼取反之后符號位置為1,是一個負整數(shù),所以再按照負整數(shù)計算補碼的方式逆運算得到原碼
逆運算得到原碼,首先將取反的補碼轉成反碼,公式:反碼=補碼 – 1,然后將反碼轉成原碼,符號位不變,其他位取反
十進制 —-> 原碼 —-> 反碼 —-> 補碼 —-> 補碼取反 —-> 取反補碼轉成反碼 —-> 轉成原碼 1 —-> 00000001 —-> 0000001 —-> 00000001 —-> 11111110 —-> 11111101 —-> 10000010
負整數(shù)補碼取反之后符號位置為0,是一個正整數(shù),因正整數(shù)的反碼與補碼就是本身,所以不需要再進行逆運算
十進制 —-> 原碼 —-> 反碼 —-> 補碼 —-> 補碼取反得原碼 -1 —-> 10000001 —-> 11111110 —-> 11111111 —-> 00000000 5、將原碼轉成二進制十進制 —-> 原碼 —-> 反碼 —-> 補碼 —-> 補碼取反 —-> 取反補碼轉成反碼 —-> 轉成原碼 —-> 轉成二進制 1 —-> 00000001 —-> 0000001 —-> 00000001 —-> 11111110 —-> 11111101 —-> 10000010 —-> -2十進制 —-> 原碼 —-> 反碼 —-> 補碼 —-> 補碼取反得原碼 —-> 轉成二進制 -1 —-> 10000001 —-> 11111110 —-> 11111111 —-> 00000000 —-> 0
所以,~1=-2,~-1=0
取反再取反~~的作用
操作符~, 是按位取反的意思,表面上~~(取反再取反)沒有意義,實際上在js中可以將浮點數(shù)變成整數(shù)。
console.log(~~1.11); //1 console.log(~~-25.11); //-25
【相關推薦:javascript學習教程】
上一個:PCR擴增實驗試劑盒的常見幾大類有哪些?
下一個:蝸牛的防治

80公斤玻璃棉板可以生產(chǎn)嗎?
b1級橡塑保溫管,發(fā)泡橡塑保溫管價格低
D671J氣動襯膠蝶閥ZSRWJ氣動全襯包膠開關切斷蝶閥產(chǎn)品特點
文化事業(yè)建設費優(yōu)惠政策2020
塔式起重機保證項目的檢查評定應符合哪些規(guī)定?
電競館網(wǎng)紅自動門
初粘力測試儀的特征
筆記本沒驅動如何恢復(筆記本沒有任何驅動怎么辦)
鴻蒙系統(tǒng)主題包(鴻蒙系統(tǒng)主題app)
蘋果鏡像一直在轉圈圈(蘋果鏡像一直在轉圈怎么回事)
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos