C의 비트 연산자 [코딩 예제 포함]

게시 됨: 2020-10-26

목차

소개

연산자는 모든 프로그래밍 언어의 필수 구성 요소입니다. 특정 논리, 수학 또는 기타 프로그래밍 작업을 수행하는 데 사용되는 기호입니다. C는 산술, 논리 및 비트 조작과 같은 여러 연산을 수행하기 위한 다양한 연산자를 제공합니다. C에는 8가지 유형의 연산자가 있습니다. 이들은 다음과 같습니다.

  • C의 산술 연산자
  • C의 논리 연산자
  • C의 조건 연산자
  • C의 관계 연산자
  • C의 증가 및 감소 연산자
  • C의 비트 연산자
  • C의 할당 연산자
  • C의 특수 연산자

이 기사에서는 C의 비트 연산자 와 이를 구현하는 방법에 대해 알아봅니다.

비트 연산자란 무엇입니까?

C 비트 연산자 는 비트 배열, 비트 문자열 및 비트 수준에서 개별 비트로 이진 값을 조정하는 연산자 유형입니다. 전자 장치 및 IoT 관련 작업을 처리하기 위해 프로그래머는 비트 연산자를 사용합니다. 비트 수준에서 더 빠르게 작동할 수 있습니다.

비트 연산자 C 에서 피연산자의 개별 비트에 대해 연산을 수행합니다. 여기서 피연산자는 연산자가 작동하는 값 또는 표현식입니다. 이러한 연산자는 프로세서의 직접적인 지원이 필요한 고급 산술 연산뿐만 아니라 핵심 작업을 수행하는 데에도 사용됩니다. 비트 연산자는 작동 원리에 따라 논리(Bitwise AND, OR 및 XOR), Shift(오른쪽 시프트 및 왼쪽 시프트) 및 보완(비트 NOT)의 세 가지 하위 유형으로 더 세분화할 수 있습니다.

C 에는 6개의 서로 다른 비트 연산자가 있습니다. 이것들은:

· 비트 AND 연산자(&)

· 비트 OR 연산자(|)

· 비트 배타적 OR 연산자(^)

· 이진 1의 보수 또는 비트 NOT 연산자(~)

· 비트 왼쪽 시프트 연산자 (<<)

· 비트 오른쪽 시프트 연산자(>>)

비트 연산자를 사용하여 프로그래머는 피연산자에 포함된 값의 개별 비트를 변경할 수 있습니다. 컴퓨터 메모리의 단일 바이트를 8개 플래그의 참 또는 거짓 상태를 나타내는 8비트로 볼 수 있습니다. 비트 연산자는 일반적으로 운영 체제 및 드라이버 소프트웨어에서 플래그 값을 정의하는 데 적용됩니다. 예를 들어 파일 속성에서 읽기 전용 모드는 개념적으로 운영 체제에서 플래그 비트로 표현되며 비트 연산자를 사용하여 참과 거짓 값 사이를 전환합니다.

다음은 비트 연산자의 계산 결과를 보여주는 표입니다.

엑스 와이 x & y 엑스 | 와이 x ^ y
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0

C 에는 6가지 유형의 비트 연산자가 있습니다. 이것들은:

C의 비트 AND(&): C 컴파일러는 & 연산자가 있는 비트 AND를 인식합니다. 두 개의 피연산자를 사용하고 두 피연산자 번호의 모든 비트에 대해 AND 연산을 수행합니다. 이항 연산자입니다. 이 연산자의 출력은 두 비트가 모두 1인 경우에만 1이 됩니다.

C의 Bitwise OR(|): C 컴파일러는 | 운영자. 두 개의 피연산자를 사용하고 두 피연산자 번호의 모든 비트에 대해 OR 연산을 수행합니다. 또한 이항 연산자입니다. 이 연산자의 출력은 두 비트 중 하나라도 1이면 1이 됩니다.

C의 Bitwise XOR(^): C 컴파일러는 ^ 연산자가 있는 Bitwise XOR을 인식합니다. 두 개의 피연산자를 사용하고 두 피연산자 번호의 모든 비트에 대해 XOR 연산을 수행합니다. 또한 이항 연산자입니다. 이 연산자의 출력은 두 비트의 값이 서로 다른 경우 1이 됩니다.

C에서 이진 1의 보수 또는 Bitwise NOT 연산자(~): C 컴파일러는 ~ 연산자가 있는 Bitwise NOT을 인식합니다. 하나의 피연산자만 사용하고 모든 숫자의 반전을 수행합니다. 단항 연산자입니다. 이 연산자의 출력은 해당 피연산자의 기존 비트를 모두 반전시킵니다.

C의 비트 왼쪽 시프트 연산자 (<<): C 컴파일러는 이 <<를 사용 하여 왼쪽 시프트 연산 을 인식합니다. 두 개의 피연산자만 사용하고 첫 번째 피연산자의 모든 비트를 왼쪽으로 이동합니다. 두 번째 피연산자는 이 연산자가 비트를 이동할 위치의 수를 결정합니다. 이항 연산자입니다.

C의 비트 오른쪽 시프트 연산자(>>): C 컴파일러는 이 >>를 사용하여 왼쪽 시프트 연산을 인식합니다. 두 개의 피연산자만 사용하고 첫 번째 피연산자의 모든 비트를 오른쪽으로 이동합니다. 두 번째 피연산자는 이 연산자가 비트를 이동할 위치의 수를 결정합니다. 이항 연산자입니다.

읽기: Python의 연산자: 산술, 관계, 논리 등에 대한 초보자 안내서

C에서 비트 연산자를 위한 프로그램

이제 모든 비트 연산자를 사용하는 프로그램을 살펴보겠습니다.

#include <stdio.h>

정수 메인()

{

부호 없는 문자 x = 20, y = 21; // x = 20(00010100), y = 21(00010101)

정수 g = 0;

g = x & y; /* 20 = 010100 */

printf(" Bitwise AND의 결과는 %d입니다. \n", g );

g = x | 와이; /* 21 = 010101 */

printf(" Bitwise OR의 결과는 %d \n", g );

g = x ^ y; /* 1 = 0001 */

printf(" Bitwise XOR의 결과는 %d \n", g );

g = ~x;

printf(" Bitwise NOT의 결과는 %d \n", g );

g = x << 1;

printf(" Bitwise Left Shift 의 결과 는 %d \n", g );

g = x >> 1;

printf(" Bitwise Right Shift의 결과는 %d \n", g );

반환 0;

}

산출:

Bitwise AND의 결과는 20입니다.

Bitwise OR의 결과는 21입니다.

Bitwise XOR의 결과는 1입니다.

Bitwise NOT의 결과는 -21입니다.

Bitwise Left Shift의 결과는 40입니다.

Bitwise Right Shift의 결과는 10입니다.

또한 읽기: Python 자습서: 설정, 도구, 기능, 응용 프로그램, 이점, 비교

결론

비트 연산자는 비트 수준 프로그래밍에 사용되는 C의 특정 유형의 연산자입니다. 비트 연산자를 사용하면 데이터를 표현할 때 공간을 효율적으로 절약할 수 있으므로 반드시 알아야 합니다. 프로그래머는 시스템 프로그래밍, 임베디드 프로그래밍 및 프로토콜 설계와 같은 다양한 분야에서 이러한 연산자를 사용합니다. 따라서 프로그래머는 사용법을 알아야 합니다.

upGrad 는 C로 프로그래밍하고 upGrad의 PG 디플로마 소프트웨어 개발 전문화를 풀 스택 개발 로 제공 합니다. 풀 스택 개발자로 부상하고 멋진 애플리케이션을 빌드하는 방법을 배우는 프로그램입니다. 라이브 프로젝트 및 과제 작업과 15가지 프로그래밍 언어 및 도구 교육을 포함하는 광범위한 12개월 프로그램입니다. 이와 함께 모의 면접 및 취업 지원을 통한 상시 경력 지원이 있습니다.

당신의 꿈의 직업에 착륙

전체 스택의 업그레이드 및 IIIT-방갈로르 PG 디플로마
오늘 등록