vb6 邏輯運算 & 位元運算

看板Visual_Basic作者 (小獅)時間19年前 (2005/04/05 14:11), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
★ 邏輯運算 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

61.57.108.167 04/05, , 1F
太讚了 @__@
61.57.108.167 04/05, 1F
文章代碼(AID): #12KYmbsU (Visual_Basic)
文章代碼(AID): #12KYmbsU (Visual_Basic)