JavaScript 快速導覽 - 位元運算

JavaScript 亦提供給整數型態進行逐位元運算的運算子,例如某 16 位元整數如下

0000111100001111


取其補數該整數會變成
1111000011110000


位元運算子 (bitwise operator) ,如下列表
運算子功能範例
~取補數~a
<<保留正負號向左位移a << b
>>保留正負號向右位移a >> b
>>>無正負號向右位移a >>> b
&位元且a & b
^位元互斥或a ^ b
|位元包含或a | b


以下程式示範位元運算子
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
function run() {
    var c = document.getElementById("content");
    var n1 = document.createElement("p");
    var n2 = document.createElement("p");
    var n3 = document.createElement("p");
    var n4 = document.createElement("p");
    var n5 = document.createElement("p");
    var n6 = document.createElement("p");
    var n7 = document.createElement("p");
    n1.appendChild(document.createTextNode(~0x0));
    c.appendChild(n1);
    n2.appendChild(document.createTextNode(0x100 << 4));
    c.appendChild(n2);
    n3.appendChild(document.createTextNode(0x100 >> 4));
    c.appendChild(n3);
    n4.appendChild(document.createTextNode(0x100 >>> 4));
    c.appendChild(n4);
    n5.appendChild(document.createTextNode(0x101 & 0x001));
    c.appendChild(n5);
    n6.appendChild(document.createTextNode(0x101 ^ 0x001));
    c.appendChild(n6);
    n7.appendChild(document.createTextNode(0x101 | 0x001));
    c.appendChild(n7);
}
 
/* 《程式語言教學誌》的範例程式
     檔名:run14.js
     功能:示範 JavaScript 程式
     作者:張凱慶
     時間:西元 2010 年 11 月 */


利用以下的 HTML 文件載入
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<html>
 
<head>
<title>JavaScript Demo</title>
<script src="run14.js" type="text/javascript"></script>
</head>
 
<body>
<input id="b" type="button" value="RUN" onclick="run();">
<div id="content"></div>
</body>
 
</html>
 
<!-- 《程式語言教學誌》的範例程式
     檔名:jsexample17.html
     功能:示範 JavaScript 程式
     作者:張凱慶
     時間:西元 2010 年 11 月 -->


瀏覽器 (broswer) 開啟後執行,如下



中英文術語對照
位元運算子bitwise operator
瀏覽器broswer






沒有留言: