從20世紀70年代末到80年代末,Digital Equipment的VAX計算機是一種非常流行的機型。它沒有布爾運算AND和OR指令,只有bis(位設置)和bic(位清除)這兩種指令。兩種指令的輸入都是一個數據字x和一個掩碼字m。它們生成一個結果z,z是由根據掩碼m的位來修改x的位得到的。使用bis指令,這種修改就是在m為1的每個位置上,將z對應的位設置為1。使用bic指令,這種修改就是在m為1的每個位置,將z對應的位設置為0。
只使用這兩個函數實現C語言的按位|和^運算。
1 int bis(int x, int m); 2 int bic(int x, int m); 3 4 int bool_or(int x, int y) 5 { 6 int result = bis(x, y); 7 return result; 8 } 9 10 int bool_xor(int x, int y) 11 { 12 int result = bis(bic(x, y), bic(y, x)); 13 return result; 14 }