저자 서문
저자 소개:
저자 id : Old Qin Bao you will ,
간략한 소개:
C언어, 파이썬 등 프로그래밍 언어를 배우는 것을 좋아하고 공유하기를 좋아하는 블로거입니다.
개인 홈페이지:: 작은 페이지
gitee 페이지: David Qin
공유하기를 좋아하는 작은 블로거가 귀염둥이를 환영합니다
.
______________________________________________________________________
목차
연산자 클래스
연산자 사용
산술 연산자
+ - * / %
* - +와 같은 연산자는 수학과 동일하게 사용되므로 여기서는 다루지 않겠습니다.
/는 두 가지 용도가 있습니다. 하나는 정수 나눗셈이고 다른 하나는 소수 나눗셈입니다.
#include <stdio.h>
int main()
{
int a = 20;
printf("%d\n", a / 5);
printf("%lf\n", a / 5.0);
return 0;
}
%는 양쪽 모두 정수일 수 있습니다.
시프트 연산자(숫자의 2의 보수)
![](https://img-blog.csdnimg.cn/dfc1bc9fe88f4c538298f53374e63a6e.png)
컴퓨터가 사용하는 것은 반전과 1을 더하는 루틴입니다.
![](https://img-blog.csdnimg.cn/0a0687c718a544cba4b243ff4c7bd511.png)
C 언어에서 메모리에 정수를 저장하는 것은 보수(정수는 보수로 메모리에 저장됨)이며 정수도 보수를 사용하여 계산됩니다.
>> 오른쪽 시프트 연산자
범주: 1. 논리적 오른쪽 시프트
2. 산술 오른쪽 시프트
이 두 개의 오른쪽 시프트는 개인이 아니라 컴파일러에 의해 결정됩니다. vs 컴파일러는 산술 오른쪽 시프트입니다.
#include <stdio.h>
int main()
{
int m = 7;
int n = 7 >> 1;
printf("%d", n);
return 0;
}
산술 오른쪽 시프트:
이동하려는 자릿수에 따라 맨 오른쪽에 몇 자릿수를 버리고 맨 왼쪽에 0을 추가하고 음수의 경우 맨 왼쪽에 1을 추가합니다.
논리적 오른쪽 시프트:
이동하려는 자릿수에 따라 맨 오른쪽에 몇 자릿수를 버리고 맨 왼쪽에 0을 추가합니다.
<< 왼쪽 연산자
이동하려는 자릿수는 맨 왼쪽에서 버리고 맨 오른쪽에서 0으로 채우고,
비트 연산자(숫자의 2의 보수)
#include <stdio.h>
int main()
{
int a = -5;
int b = 3;
printf("%d\n", a & b);
printf("%d\n", a | b);
printf("%d\n", a ^ b);
return 0;
}
![](https://img-blog.csdnimg.cn/446495d15e9f4f32969f3147fa156da9.png)
& // 비트 AND
수학의 지식으로, 그것들이 모두 참일 때만 참이며, 두 숫자의 해당 이진수는 모두 1에서 1이고 나머지는 모두 0입니다.
-5 & 3==》00000000 00000000 00000000 00000011 (보완 코드)
| // 비트 또는
수학이나 지인으로 참이 있으면 참이고, 모두 거짓이면 거짓이다 두 수에 해당하는 이진 비트 중 하나만 1이면 1이고 모두 0~ 0이 되다
-5 |3==》111111111111111111111111111010(보완 부호)==》1 0000000 00000000 00000000 00000101(원본 부호)
^ // 비트별 XOR
두 수의 값이 같으면 0, 다르면 1이다.
-5^3==> 11111111111111111111111111000(보완코드) ==》1 0000000 00000000 00000000 00001000(원본코드)
아^아=아
0^a=a
두 숫자의 교호작용을 계산할 때 이 방법을 사용하면 변수를 하나 줄일 수 있는데 이 방법은 가독성이 높지 않으므로 너무 많이 사용하지 않는 것이 좋습니다.
#include <stdio.h>
int main()
{
int a = 5;
int b = 6;
printf("a=%d b=%d\n", a, b);
a = a ^ b;
b = a ^ b;
a = a ^ b;
printf("a=%d b=%d\n", a, b);
return 0;
}
이 연산자는 정수에 적용됩니다.
할당 연산자
=
오른쪽에서 왼쪽으로 할당
복합 할당 연산자
+= 、-= 、*= 、/= 、%= 、>>= 、<<= 、&= 、|= 、^=
이들의 사용은 a = a+b===> a+=b와 동일합니다.
단항 연산자
! 참을 거짓으로, 거짓을 참으로 바꾸는 것으로 거짓이 되면 0이 되고 참이 되면 1이 된다.
& 주소,
* 역참조 연산자
#include <stdio.h>
int main()
{
int a = 0;
printf("%p\n", &a);
int* p = &a;
int arr[10];
int* pa = arr;
printf("%p\n", pa);
printf("%p\n", &pa);
*p = 15;//对p解引用操作,*p是通过p中存放的地址,找到p指向的对象,*p就是a
printf("%d\n", a);
return 0;
}
sizeof 계산 결과는 unsigned int(부호 없는 정수)인 size_t 유형을 반환하고 출력 형식은 %zd입니다.
#include <stdio.h>
int main()
{
int arr[10];
printf("%zd\n", sizeof arr);
printf("%zd\n", sizeof (arr));
printf("%zd\n", sizeof (int));
printf("%zd\n", sizeof arr / sizeof(int));
return 0;
}
sizeof는 함수가 아니다. 함수 참조의 ()를 생략할 수 없기 때문이다.
계산 유형 또는 변수의 크기(바이트)입니다.
계산 변수의 크기는 생략 가능(), 계산식을 예약해야 하는 경우()
#include <stdio.h>
int main()
{
int a = 0;
printf("%d\n", ~a);
return 0;
}
결과는 -1, 0의 보수 코드는 0000000000000000000000000000000, ~0은 1111111111111111111111111111, 역수에 1을 더하면 원래 코드는 100000000000000000000000000입니다. 00001
#include <stdio.h>
int main()
{
int a = 2;
printf("%d", a | (1 << 2));
printf("%d", (a | (1 << 2)) & (1 << 2));
return 0;
}
++, -- 사전 위치와 사후 위치의 두 가지 용도가 있습니다.
++
접두사 ++: 먼저 1을 추가한 다음 사용
사후 위치 ++, 처음 사용 + 1
#include <stdio.h>
int main()
{
int a = 0;
int b = ++a;
printf("a=%d b=%d\n", a, b);
b = a++;
printf("a=%d b=%d\n", a, b);
return 0;
}
--
Pre--: 사용하기 전에 1 감소
post--; 먼저 사용한 다음 1을 뺍니다.
#include <stdio.h>
int main()
{
int a = 0;
int b = --a;
printf("a=%d b=%d\n", a, b);
b = a--;
printf("a=%d b=%d\n", a, b);
return 0;
}
( 유형 ) 캐스트
#include <stdio.h>
int main()
{
int a = (int)3.14;
printf("%d", a);
return 0;
}
유형 변환은 가능한 많이 사용하지 않아야 합니다.
관계 연산자
논리 연산자
#include <stdio.h>
int main()
{
int a = 1;
int b = 0;
printf("%d", a && b);
printf("%d", a || b);
return 0;
}
단락 동작
#include <stdio.h>
int main()
{
int i = 0,a=0,b=2,c =3,d=4;
i = a++ && ++b && d++;
//i = a++||++b||d++;
printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d);
return 0;
}
&&를 사용할 때 한쪽이 거짓이면 다른 쪽은 셀 필요가 없습니다.
|| 한쪽이 참이면 다른 쪽은 중요하지 않습니다.
요약하다:
여기에 운영자가 표시되며 아래에 소개가 있습니다. 귀염둥이를 이해하지 못하면 개인적으로 채팅 할 수 있습니다