반응형
tilde(~) 연산자의 역할은 무엇입니까?
나는 최근에 위의 연산자를 코드에서 보고 검색해봤지만 아무것도 찾지 못했다.코드는 다음과 같습니다.이 오퍼레이터가 실제로 어떤 일을 하는지 설명해 주세요.
#include<stdio.h>
int main()
{
unsigned long int i=0;
char ch;
char name1[20],name2[20];
FILE *fp,*ft;
printf("ENTER THE SOURCE FILE:");
gets(name1);
printf("ENTER THE DESTINATION FILE:");
gets(name2);
fp=fopen(name1,"r");
ft=fopen(name2,"w");
if(fp==NULL)
{
printf("CAN,T OPEN THE FILE");
}
while(!feof(fp))
{
ch=getc(fp);
ch=~((ch^i));/*<--Here*/
i+=2;
if(i==100000)
{
i=0;
}
putc(ch,ft);
}
fclose(fp);
fclose(ft);
return 0;
}
그~
C++(및 C 및 Java와 같은 다른 C-like 언어)의 연산자는 비트 단위로 NOT 연산을 수행합니다. 피연산자의 모든 1비트는 0으로, 피연산자의 모든 0비트는 1로 설정됩니다.즉, 원래 숫자의 보수가 생성됩니다.
예를 들어 다음과 같습니다.
10101000 11101001 // Original (Binary for -22,295 in 16-bit two's complement)
01010111 00010110 // ~Original (Binary for 22,294 in 16-bit two's complement)
이 예에서는ch=~((ch^i))
의 비트 단위 XOR에서 비트 단위 NOT를 실행합니다.ch
그리고.i
그런 다음 결과를 에 할당합니다.ch
.
비트 단위 NOT 연산자에는 2의 보수로 표시되는 숫자에 적용하면 숫자의 부호가 변경된 다음 1을 뺀다는 흥미로운 속성이 있습니다(위의 예에서 볼 수 있습니다).
검색 엔진에서 연산자를 검색하기가 어렵기 때문에 C++ 언어의 연산자에 익숙해질 수 있습니다.더 좋은 것은 C++ 연산자에 대해 알려주는 좋은 C++ 책을 구할 수 있다는 것입니다.
~ 연산자는 모든 비트를 반전시킵니다.그렇게10000001
된다01111110
.
이것은 비트 단위 보완 연산자입니다.입력이 주어진 경우
010011101
출력을 반환합니다.
101100010
언급URL : https://stackoverflow.com/questions/3952122/what-does-tilde-operator-do
반응형
'source' 카테고리의 다른 글
Vue 2 - 스크롤 이벤트 리슨 중 (0) | 2022.08.31 |
---|---|
C에서 빈 매크로 정의를 사용할 수 있습니까?그들은 어떻게 행동하나요? (0) | 2022.08.31 |
Vue 템플릿에서 중첩된 개체 속성에 쉽게 액세스할 수 있는 방법이 있습니까? (0) | 2022.08.30 |
Java 8의 맵 목록 (0) | 2022.08.30 |
조건부 vue-router 로드 (0) | 2022.08.30 |