論理和・論理積・排他的論理和
明解C言語 入門編 > 7. 基本型 >
論理和・論理積・排他的論理和
Python
import sys def count_bits(x): count = 0 while (x != 0): if (x & 1 != 0): count +=1 x = (x >> 1) & ~(~0 << (sys.getsizeof(x) * 8)); return count def int_bits(): return count_bits(~0) def print_bits(x): for i in range(int_bits() - 1, -1, -1): if ((x >> i) & 1) != 0: sys.stdout.write("1") else: sys.stdout.write("0") print na = 12345 nb = 54321 sys.stdout.write("A = "); print_bits(na) sys.stdout.write("NOT A = "); print_bits(~na) print sys.stdout.write("A = "); print_bits(na) sys.stdout.write("B = "); print_bits(nb) sys.stdout.write("A AND B = "); print_bits(na & nb) print sys.stdout.write("A = "); print_bits(na) sys.stdout.write("B = "); print_bits(nb) sys.stdout.write("A OR B = "); print_bits(na | nb) print sys.stdout.write("A = "); print_bits(na) sys.stdout.write("B = "); print_bits(nb) sys.stdout.write("A XOR B = "); print_bits(na ^ nb)
実行結果
N:\>python lesson_07_056.py
A = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000011000000111001
NOT A = 1111111111111111111111111111111111111111111111111111111111111111111111111111111111100111111000110A = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000011000000111001
B = 0000000000000000000000000000000000000000000000000000000000000000000000000000000001101010000110001
A AND B = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000110001A = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000011000000111001
B = 0000000000000000000000000000000000000000000000000000000000000000000000000000000001101010000110001
A OR B = 0000000000000000000000000000000000000000000000000000000000000000000000000000000001111010000111001A = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000011000000111001
B = 0000000000000000000000000000000000000000000000000000000000000000000000000000000001101010000110001
A XOR B = 0000000000000000000000000000000000000000000000000000000000000000000000000000000001110010000001000