[爆卦]位元運算子是什麼?優點缺點精華區懶人包

為什麼這篇位元運算子鄉民發文收入到精華區:因為在位元運算子這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者fumizuki (小獅)看板Visual_Basic標題vb6 邏輯運算 & 位元運算...

位元運算子 在 4Gamers編輯部 Instagram 的最佳貼文

2021-09-03 17:51:58

微軟宣布 Windows 11 作業系統將於 2021 年 10 月 5 日上市,除了已經預載的 PC,也同步開放符合條件的 Windows 10 用戶免費升級。⁣ ⁣ 按照過往的經驗,Windows 11 的免費升級將分階段提供。微軟 Windows 行銷總經理 Aaron Woodman 表示,...


★ 邏輯運算

VB6 提供了六個邏輯運算子:Not、And、Or、Xor、Imp、Eqv

各個運算子的真值表如下所示:

┌───┬───┬───┬───┬───┬───┐
Not │True │False │ Null │ 0 │ 1 │
├───┼───┼───┼───┼───┼───┤
│ │False │True │ Null │ 1 │ 0 │
└───┴───┴───┴───┴───┴───┘

┌───┬───┬───┬───┬───┬───┐
And │ True │False │ Null │ 0 │ 1 │
├───┼───┼───┼───┼───┼───┤
│ True │True │False │ Null │ 0 │ 1 │
├───┼───┼───┼───┼───┼───┤
│False │False │False │ False│ 0 │ 0 │
├───┼───┼───┼───┼───┼───┤
NullNull │False │ Null │ 0 │ Null
├───┼───┼───┼───┼───┼───┤
│ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │
├───┼───┼───┼───┼───┼───┤
│ 1 │ 1 │ 0 │ Null │ 0 │ 1 │
└───┴───┴───┴───┴───┴───┘

┌───┬───┬───┬───┬───┬───┐
Or │ True │False │ Null │ 0 │ 1 │
├───┼───┼───┼───┼───┼───┤
│ True │ True │False │ True │ -1 │ -1 │
├───┼───┼───┼───┼───┼───┤
│False │ False│False │ Null │ 0 │ 1 │
├───┼───┼───┼───┼───┼───┤
Null │ True │ NullNullNull │ 1 │
├───┼───┼───┼───┼───┼───┤
│ 0 │ -1 │ 0 │ Null │ 0 │ 1 │
├───┼───┼───┼───┼───┼───┤
│ 1 │ -1 │ 1 │ 1 │ 1 │ 1 │
└───┴───┴───┴───┴───┴───┘

┌───┬───┬───┬───┬───┬───┐
Xor │ True │False │ Null │ 0 │ 1 │
├───┼───┼───┼───┼───┼───┤
│ True │False │ True │ Null │ -1 │ -2 │
├───┼───┼───┼───┼───┼───┤
│False │ True │False │ Null │ 0 │ 1 │
├───┼───┼───┼───┼───┼───┤
NullNullNull NullNullNull
├───┼───┼───┼───┼───┼───┤
│ 0 │ -1 │ 0 │ Null │ 0 │ 1 │
├───┼───┼───┼───┼───┼───┤
│ 1 │ -2 │ 1 │ Null │ 1 │ 0 │
└───┴───┴───┴───┴───┴───┘

┌───┬───┬───┬───┬───┬───┐
Imp │ True │False │ Null │ 0 │ 1 │只有 Imp 運算子會因先後順序
├───┼───┼───┼───┼───┼───┤的不同而得到不同的結果
│ True │ True │False │ Null │ 0 │ 1 │
├───┼───┼───┼───┼───┼───┤
│False │ True │ True │ True │ -1 │ -1 │
├───┼───┼───┼───┼───┼───┤
│ Null │ True │ NullNullNull │ 1 │
├───┼───┼───┼───┼───┼───┤
│ 0 │ -1 │ -1 │ -1 │ -1 │ -1 │
├───┼───┼───┼───┼───┼───┤
│ 1 │ -1 │ -2 │ -2 │ -2 │ -1 │
└───┴───┴───┴───┴───┴───┘

┌───┬───┬───┬───┬───┬───┐
Eqv │ True │False │ Null │ 0 │ 1 │
├───┼───┼───┼───┼───┼───┤
│ True │ True │False │ Null │ 0 │ 1 │
├───┼───┼───┼───┼───┼───┤
│False │False │ True │ Null │ -1 │ -2 │
├───┼───┼───┼───┼───┼───┤
NullNull NullNullNullNull
├───┼───┼───┼───┼───┼───┤
│ 0 │ 0 │ -1 │ Null │ -1 │ -2 │
├───┼───┼───┼───┼───┼───┤
│ 1 │ 1 │ -2 │ Null │ -2 │ -1 │
└───┴───┴───┴───┴───┴───┘

★ 位元運算 (以下對照 c 語言的位元運算作說明)

VB6 並沒有位元運算子,但邏輯運算子有相同的效果。

例如:65 And 5 = 1

65 的二進位值為 0100 0001
5 的二進位值為 0000 0101
--------------------------
And 運算結果為 0000 0001

不過邏輯運算子只能使用在數字、布林、Null上,不能對字串(字元)進行位元運算。
如果要對字元進行運算,則必須將其轉換成數值再作位元運算。

例如:
VB6 C++
Asc("A") And 5 'A' & 5
Asc("A") Or 5 'A' | 5
Asc("A") Xor 5 'A' ^ 5
Asc("A") * 2 'A' << 1
Asc("A") / 4 'A' >> 2

--
人若無星爺,跟條鹹魚有何分別?

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.58.156.43
JJss:太讚了 @__@ 61.57.108.167 04/05

你可能也想看看

搜尋相關網站