- JavaScript前端開發(fā)基礎(chǔ)教程
- 呂云翔 歐陽(yáng)植昊 張遠(yuǎn)等編著
- 542字
- 2021-10-27 17:01:00
2.3.6 位運(yùn)算符
位運(yùn)算符是用來對(duì)二進(jìn)制數(shù)進(jìn)行計(jì)算的,當(dāng)使用位運(yùn)算符時(shí),JavaScript會(huì)先把其他進(jìn)制(十進(jìn)制、八進(jìn)制和十六進(jìn)制)的數(shù)轉(zhuǎn)換成32位的二進(jìn)制數(shù),再來進(jìn)行運(yùn)算,位運(yùn)算符包括以下7種。
1)與運(yùn)算(&):二元運(yùn)算符,將兩個(gè)操作數(shù)進(jìn)行邏輯與運(yùn)算后,結(jié)果以十進(jìn)制數(shù)的形式返回,例如:

2)或運(yùn)算(|):二元運(yùn)算符,將兩個(gè)操作數(shù)進(jìn)行邏輯或運(yùn)算后,結(jié)果以十進(jìn)制數(shù)的形式返回,例如:

3)異或運(yùn)算(^):二元運(yùn)算符,將兩個(gè)操作數(shù)進(jìn)行邏輯異或運(yùn)算后,結(jié)果以十進(jìn)制數(shù)的形式返回,例如:

4)非運(yùn)算(~):一元運(yùn)算符,對(duì)操作數(shù)的每一位進(jìn)行非運(yùn)算后,結(jié)果以十進(jìn)制數(shù)的形式返回,由于進(jìn)行非運(yùn)算后原數(shù)的符號(hào)位也要取反,因此原數(shù)的符號(hào)會(huì)改變,例如:

5)左移運(yùn)算(<<):二元運(yùn)算符,對(duì)第一個(gè)操作數(shù)的二進(jìn)制數(shù)進(jìn)行所有位數(shù)向左移動(dòng)n位的操作,其中n等于第二個(gè)操作數(shù)的值,右側(cè)空出來的位置用0來填補(bǔ),例如:

6)無符號(hào)右移運(yùn)算(>>>):二元運(yùn)算符,對(duì)第一個(gè)操作數(shù)的二進(jìn)制數(shù)進(jìn)行所有位數(shù)向右移動(dòng)n位的操作,其中n等于第二個(gè)操作數(shù)的值,左側(cè)空出來的位置用0來填補(bǔ),例如:

7)帶符號(hào)右移運(yùn)算(>>):二元運(yùn)算符,對(duì)第一個(gè)操作數(shù)的二進(jìn)制數(shù)進(jìn)行所有位數(shù)向右移動(dòng)n位的操作,其中n等于第二個(gè)操作數(shù)的值。左側(cè)空出來的位置根據(jù)符號(hào)填補(bǔ),如果是正數(shù)(第32位為0),則用0填補(bǔ),與無符號(hào)右移運(yùn)算結(jié)果相同;但如果是負(fù)數(shù)(第32位為1),則用1來填補(bǔ),例如:

下面列出上述實(shí)例的代碼來驗(yàn)證其正確性:

輸出如圖2.28所示。

圖2.28 樣例輸出2.28
- 零基礎(chǔ)學(xué)Visual C++第3版
- Node.js Design Patterns
- 零起步玩轉(zhuǎn)掌控板與Mind+
- Learning C++ Functional Programming
- Selenium Design Patterns and Best Practices
- INSTANT MinGW Starter
- Node.js全程實(shí)例
- Learning AngularJS for .NET Developers
- Clojure for Machine Learning
- Java編程從入門到精通
- Angular Design Patterns
- 軟件工程與UML案例解析(第三版)
- Android移動(dòng)應(yīng)用項(xiàng)目化教程
- Unity 5 Game Optimization
- 計(jì)算機(jī)常用算法與程序設(shè)計(jì)教程(第2版)