C 언어
비트 연산자 비트 레벨 프로그래밍이라고도 하는 비트 레벨에서 데이터를 조작하는 데 사용됩니다. Bitwise는 개별 비트 수준에서 하나 이상의 비트 패턴 또는 이진수에 대해 작동합니다. 계산 프로세스를 더 빠르게 하기 위해 수치 계산에 사용됩니다.
다음은 'C' 프로그래밍 언어에서 제공하는 비트 연산자 목록입니다.
연산자 의미 & 비트 AND 연산자| 비트 OR 연산자^ 비트 배타적 OR 연산자~ 이진 1의 보수 연산자는 단항 연산자입니다.<< 왼쪽 시프트 연산자>> 오른쪽 시프트 연산자
비트 연산자는 float, double 등과 같은 기본 데이터 유형에 직접 적용할 수 없습니다. 비트 연산자는 호환성 때문에 정수 데이터 유형과 함께 주로 사용된다는 점을 항상 기억하십시오.
비트 논리 연산자는 최하위 비트, 즉 가장 오른쪽 비트인 LSB 비트부터 시작하여 가장 왼쪽 비트인 MSB(Most Significant Bit) 쪽으로 작업하여 비트 단위로 데이터에 대해 작업합니다.
비트 논리 연산자의 계산 결과는 아래 표와 같습니다.
x 예 x 및 y x | y x ^ y 0 00000 10111 00111 1110이 튜토리얼에서는 배우게 될 것입니다-
이것은 가장 일반적으로 사용되는 논리 비트 연산자 중 하나입니다. 단일 앰퍼샌드 기호(&)로 표시됩니다. (&) 연산자의 양쪽에 두 개의 정수 식이 기록됩니다.
비트 AND 연산의 결과는 두 비트의 값이 모두 1이면 1입니다. 그렇지 않으면 결과는 항상 0입니다.
다음과 같은 값을 갖는 2개의 변수 op1 및 op2가 있다고 가정해 보겠습니다.
Op1 = 0000 1101 Op2 = 0001 1001
변수 op1 및 op2에 대한 AND 연산의 결과는 다음과 같습니다.
Result = 0000 1001
보시다시피, 두 변수는 비트 단위로 비교됩니다. 두 변수의 비트 값이 1일 때마다 결과는 1 또는 0이 됩니다.
단일 수직 막대 기호(|)로 표시됩니다. (|) 연산자의 양쪽에 두 개의 정수 표현식이 작성됩니다.
비트 OR 연산의 결과는 표현식 중 하나 이상의 값이 1이면 1입니다. 그렇지 않으면 결과는 항상 0입니다.
다음과 같은 값을 갖는 2개의 변수 op1 및 op2가 있다고 가정해 보겠습니다.
Op1 = 0000 1101 Op2 = 0001 1001
변수 op1 및 op2에 대한 OR 연산의 결과는 다음과 같습니다.
Result = 0001 1101
보시다시피, 두 변수는 비트 단위로 비교됩니다. 변수 중 하나의 비트 값이 1일 때마다 결과는 1 또는 0이 됩니다.
기호(^)로 표시됩니다. (^) 연산자의 양쪽에 두 개의 정수 표현식이 작성됩니다.
표현식 중 하나만 값이 1인 경우 비트 배타적 OR 연산의 결과는 1입니다. 그렇지 않으면 결과는 항상 0입니다.
다음과 같은 값을 갖는 2개의 변수 op1 및 op2가 있다고 가정해 보겠습니다.
Op1 = 0000 1101 Op2 = 0001 1001
변수 op1 및 op2에 대한 XOR 연산의 결과는 다음과 같습니다.
Result = 0001 0100
보시다시피, 두 변수는 비트 단위로 비교됩니다. 하나의 변수만 값 1을 보유할 때마다 결과는 0이고 그렇지 않으면 0이 결과가 됩니다.
비트 논리 연산자를 보여주는 간단한 프로그램을 작성해 보겠습니다.
#include <stdio.h> int main() { int a = 20; /* 20 = 010100 */ int b = 21; /* 21 = 010101 */ int c = 0; c = a & b; /* 20 = 010100 */ printf("AND - Value of c is %d\n", c ); c = a | b; /* 21 = 010101 */ printf("OR - Value of c is %d\n", c ); c = a ^ b; /* 1 = 0001 */ printf("Exclusive-OR - Value of c is %d\n", c ); getch(); }
출력:
AND - Value of c is 20 OR - Value of c is 21 Exclusive-OR - Value of c is 1
비트 시프트 연산자는 비트 패턴을 왼쪽이나 오른쪽으로 이동/이동하는 데 사용됩니다. 왼쪽과 오른쪽은 'C'가 제공하는 두 개의 시프트 연산자로 다음과 같이 표시됩니다.
Operand << n (Left Shift) Operand >> n (Right Shift)
여기,
왼쪽 시프트 연산은 'n'개의 비트를 왼쪽으로 시프트합니다. 표현식의 가장 왼쪽 비트가 튀어 나오고 값이 0인 n 비트가 오른쪽에 채워집니다.
오른쪽 시프트 연산은 'n'개의 비트를 오른쪽으로 시프트합니다. 표현식의 가장 오른쪽 'n' 비트가 튀어나오고 값 0이 왼쪽에 채워집니다.
예:x는 데이터가 1111인 정수 표현식입니다. 시프트 연산을 수행한 후 결과는 다음과 같습니다.
x << 2 (left shift) = 1111<<2 = 1100 x>>2 (right shift) = 1111>>2 = 0011
Shifts 연산자를 결합한 다음 정수 표현식에서 데이터를 추출하는 데 사용할 수 있습니다. 비트 시프트 연산자의 사용을 보여주는 프로그램을 작성해 보겠습니다.
#include <stdio.h> int main() { int a = 20; /* 20 = 010100 */ int c = 0; c = a << 2; /* 80 = 101000 */ printf("Left shift - Value of c is %d\n", c ); c = a >> 2; /*05 = 000101 */ printf("Right shift - Value of c is %d\n", c ); return 0; }
출력:
Left shift - Value of c is 80 Right shift - Value of c is 5
왼쪽 시프트 연산을 수행한 후 값은 80이 되고 이진 값은 101000입니다.
오른쪽 시프트 연산을 수행한 후 값은 000101에 해당하는 이진 값이 5가 됩니다.
비트 보수는 항상 하나의 값 또는 피연산자만 취하기 때문에 1의 보수 연산자라고도 합니다. 단항 연산자입니다.
비트에 대해 보수를 수행하면 모든 1이 0이 되고 그 반대도 마찬가지입니다.
0000 1111을 포함하는 정수 표현식이 있는 경우 비트 보수 연산을 수행한 후 값은 1111 0000이 됩니다.
비트 보수 연산자는 기호 물결표(~)로 표시됩니다.
비트 보수 연산자의 구현을 보여주는 프로그램을 작성해 보겠습니다.
#include <stdio.h> int main() { int a = 10; /* 10 = 1010 */ int c = 0; c = ~(a); printf("Complement - Value of c is %d\n", c ); return 0; }
출력:
Complement - Value of c is -11
다음은 지금까지 논의된 모든 오페라의 예가 있는 또 다른 프로그램입니다.
#include <stdio.h> main() { unsigned int x = 48; /* 48 = 0011 0000 */ unsigned int y = 13; /* 13 = 0000 1101 */ int z = 0; z =x & y; /* 0 = 0000 0000 */ printf("Bitwise AND Operator - x & y = %d\n", z ); z = x | y; /* 61 = 0011 1101 */ printf("Bitwise OR Operator - x | y = %d\n", z ); z= x^y; /* 61 = 0011 1101 */ printf("Bitwise XOR Operator- x^y= %d\n", z); z = ~x; /*-49 = 11001111 */ printf("Bitwise One's Complement Operator - ~x = %d\n", z); z = x << 2; /* 192 = 1100 0000 */ printf("Bitwise Left Shift Operator x << 2= %d\n", z ); z= x >> 2; /* 12 = 0000 1100 */ printf ("Bitwise Right Shift Operator x >> 2= %d\n", z );}
프로그램을 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다.
Bitwise AND Operator - x & y = 0 Bitwise OR Operator - x | y = 61 Bitwise XOR Operator- x^y= 61 Bitwise One's Complement Operator - ~x = -49 Bitwise Left Shift Operator x << 2= 192 Bitwise Right Shift Operator x >> 2= 12
C 언어
이 시리즈의 이전 기사에서 우리는 전국적으로 5G 구현을 주도하는 Massive MIMO 기술을 검토했습니다. mmWave 주파수 애플리케이션의 잠재력은 결국 실현될 것이지만 향후 몇 년 동안 5G 서비스는 Sub-6GHz 대역을 통해 전송되는 신호로 정의될 것입니다. 이를 가능하게 하려면 차세대 기지국 솔루션은 RF 프런트 엔드 성능을 크게 개선해야 합니다. 엔지니어들은 더 나은 RFFE 통합, 크기 감소, 더 낮은 전력 소비, 더 높은 출력 전력, 더 넓은 대역폭, 개선된 선형성 및 증가된 수신기 감도를 설명하는 기지국을 개발
액체, 반고체 물질, 증기 또는 공기가 배관을 따라 이동하여 응용 분야에 사용되는 경우 물질의 흐름을 조절해야 합니다. 너무 많은 재료는 응용 프로그램에 필요하지 않거나 시스템을 손상시키거나 작업자에게 위험할 수 있습니다. 또한 작업자는 장비의 유지 보수를 수행하거나 프로세스에 문제가 있는 경우 작업을 중단하는 등 특정 이유로 자재의 흐름을 완전히 차단할 수 있는 방법이 있어야 합니다. 밸브라는 메커니즘이 재료의 흐름을 조절하는 데 사용됩니다. 밸브는 규제하는 재료와 사용되는 시스템에 따라 다양한 유형으로 제공됩니다. 공압 밸브는