論理和・論理積・排他的論理和
明解C言語 入門編 > 7. 基本型 >
論理和・論理積・排他的論理和
Java
class Lesson056 { public static void main(String[] args) { int na = 12345; int nb = 54321; System.out.printf("A = "); print_bits(na); System.out.printf("NOT A = "); print_bits(~na); System.out.print('\n'); System.out.printf("A = "); print_bits(na); System.out.printf("B = "); print_bits(nb); System.out.printf("A AND B = "); print_bits(na & nb); System.out.print('\n'); System.out.printf("A = "); print_bits(na); System.out.printf("B = "); print_bits(nb); System.out.printf("A OR B = "); print_bits(na | nb); System.out.print('\n'); System.out.printf("A = "); print_bits(na); System.out.printf("B = "); print_bits(nb); System.out.printf("A XOR B = "); print_bits(na ^ nb); } static void print_bits(int x) { int i; for (i = int_bits() - 1; i >= 0; i--) System.out.print(((x >>> i) & 1) != 0 ? '1' : '0'); System.out.print('\n'); } static int int_bits() { return count_bits(~0); } static int count_bits(int x) { int count = 0; while (x != 0) { if ((x & 1) != 0) count++; x >>>= 1; } return count; } }
実行結果
L:\>java Lesson056
A = 00000000000000000011000000111001
NOT A = 11111111111111111100111111000110A = 00000000000000000011000000111001
B = 00000000000000001101010000110001
A AND B = 00000000000000000001000000110001A = 00000000000000000011000000111001
B = 00000000000000001101010000110001
A OR B = 00000000000000001111010000111001A = 00000000000000000011000000111001
B = 00000000000000001101010000110001
A XOR B = 00000000000000001110010000001000