[차례]  [함수색인] Wel 도움말 문서 [이전]  [다음]
대분류: 연산자(Operator)
소분류: Bit 연산자
Bit 연산자 작성일: 2000/06/19
수정일: 2002/07/05

1. 연산자: ~ & ^ | 2. 형 식: ~ operand1 operand1 & operand2 operand1 ^ operand2 operand1 | operand2 3. 설 명: 프로그래밍언어에서 정수나 실수는 모두 2진수로 변환되어 기억되는데 (예외도 있으나 Wel이나 C언어는 모두 2진수로 변환됨) 이렇게 기억된 2진수에 대하여 각 비트별로 연산을 할 수 있는 것이 Bit 연산자이다. 모든 Bit 연산자는 피연산자가 실수(소수 아래가 있는 수)일 경우에 정 수로 변환(소수 아래 절삭)하여 처리한다. Bit 연산자를 접할 때에는 피연산자에 대한 2진 수치를 생각하지 않으면 어떤 결과를 얻을 것인지 알기 어렵다. ~ 기호는 Bit NOT , &Bit AND , ^Bit EOR , |Bit OR 이다. 1) Bit 연산자의 연산 순위 연산 순서의 높은 순에서 낮은 순으로 열거하면 ~ , & , ^ , | 순서이다. 2) Bit NOT (~) -. 피연산자의 각 비트를 0은 1로 1은 0으로 변환한다. <예제> char a, b; // 1byte의 기억공간을 확보 a= 5; // 2진수로 기억된 형태: 0000 0101 b= ~a; // 2진수로 기억된 형태: 1111 1010 print(b); // 출력결과는 250 (2진수로 변환하면: 1111 1010임) 3) Bit AND (&) -. 두 피연산자의 해당 Bit의 값이 모두 1일때 결과값이 1이 된다. <예제> char a, b, c; // 1byte의 기억공간을 확보 double d, e, f; a= 5; // 2진수로 기억된 형태: 0000 0101 b= 14; // 2진수로 기억된 형태: 0000 1110 c= a & b; // 2진수로 기억된 형태: 0000 0100 print(c); // 출력결과는 4 (2진수로 변환하면: 0000 0100임) d= 13.3; e= 11.3; f= d & e; // d 와 e 의 값이 정수로 변환되어 13 & 11의 결과를 얻는다. print(f); // 9가 출력됨( 1101 & 1011 = 1001 ) 4) Bit OR (|) -. 두 피연산자의 해당 Bit의 값이 모두 0이 아니면 결과값이 1이 된다. 즉, 둘 중의 하나가 1이면 결과는 1이 된다.(논리 연산자 참조) <예제> char a, b, c; // 1byte의 기억공간을 확보 a= 5; // 2진수로 기억된 형태: 0000 0101 b= 14; // 2진수로 기억된 형태: 0000 1110 c= a | b; // 2진수로 기억된 형태: 0000 1111 print(c); // 출력결과는 15 (2진수로 변환하면: 0000 1111임) 5) Bit EOR (^) : 배타적(exclusive) OR -. 두 피연산자의 해당 Bit의 값이 서로 다르면 결과값이 1이 된다. 즉, 한쪽이 1이고 다른 한쪽이 0 이면 결과값이 1이 된다. <예제> char a, b, c; // 1byte의 기억공간을 확보 a= 5; // 2진수로 기억된 형태: 0000 0101 b= 14; // 2진수로 기억된 형태: 0000 1110 c= a ^ b; // 2진수로 기억된 형태: 0000 1011 print(c); // 출력결과는 11 (2진수로 변환하면: 0000 1011임)

Wel Version 1.0
[차례]  [함수색인] [이전]  [다음]