일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 푸리에 급수
- 여인자
- 변수분리#동차 미분방정식#완전 미분방정식
- 그람-슈미트 과정#gram-schmidt process
- 선형변환#contraction#expansions#shears#projections#reflection
- 선형독립#기저벡터#선형확장#span#basis
- 직교행렬#정규직교행렬#orthonormal#reflection matrix#dcm
- 비제차#제차해#일반해#적분인자#적분인자법#homogeneous sol#nonhomogeneous sol#integrating factor
- 2계미방#모드#mod#특성방정식#characteristic eq#제차해
- 오일러-코시 미방#계수내림법
- 가중 최소제곱법
- 선형 상수계수 미분방정식#lccode#sinusoidal input
- weighted least-squares
- 내적 공간#적분
- 계수내림법#reduction of order#wronskian#론스키안#아벨항등식#abel's identity
- 여인수 행렬
- 푸리에 정리
- reflection matrix
- 정규직교행렬
- 미분방정식 #선형 미분방정식 #상미분 방정식
- 상태천이행렬#적분인자법#미정계수법#케일리-헤밀톤 정리
- 추정문제#normal equation#직교방정식#정사영#정사영행렬#정사영 변환
- 최소자승#least-square#목적함수#양한정#정점조건#최소조건
- 선형시스템연산자#라이프니츠 법칙#fundamental theorem of algebra#erf
- 내적#duality#쌍대성#dot product
- 부분 분수분해
- dirichlet
- 베르누이 미분방정식
- linespectra#feurierseries#푸리에 급수
- 멱급수법
Archives
OnlyOne
Operator(비트연산자와 삼항연산자) 본문
본 포스팅은 한동대학교 21학번 과학기술전문사관 후보생 최윤석 선배님의 C언어 교육자료로 제작되었음을 알려드립니다. 감사합니다.
Operator
비트 연산자와 삼항연산자를 살펴볼 것이다.
비트 연산자
& : 둘 다 1일 때만 1을 반환, 나머지는 모두 0
| : 둘 다 0일 때만 0을 반환, 나머지는 모두 1
^ : 둘이 다를 때만 1을 반환, 둘이 같을 때는 0
~ : 0이면 1로, 1이면, 0으로
비트 이동 연산자
b = a << 3은 무슨 의미일까? a를 이진법으로 표현했을 때, 그 값을 왼쪽으로 3칸 이동시키고, 이 과정에서 비워진 3칸을 0으로 채우는 연산이다. 이 과정으로 인해 b는 a의 값에 8을 곱한 값이 된다.
예상했겠지만, a >> 1은 a/2의 값과 같다. 맨 뒤에 1이건 0이건 2로 나누면 소수가 되므로, 무시한다.
Q. 왜 나누기나 곱하기를 사용하면 되는데 굳이 비트 이동 연산자를 사용할까?
-> 그 이유는 비트 이동 연산자가 CPU에서 더 빠르게 수행되어 최적화에 유리하고, 또한 프로그래머 입장에서도 의도가 명확하게 보이는 효과로 인해 프로그래밍 효율성이 증가하기 때문이다.
삼항 연산자
#include <stdio.h>
int main(){
int a = 1;
int c = a ? 100 : 200;
printf("Value: %d\n", c);
}
a가 TRUE(0이 아닌 값)이므로, c의 값이 100이다. 만약에 a가 0이었다면, c의 값은 200이 되었을 것이다.
Example: 삼항 연산자를 이용한 최대/최소 찾기
#include <stdio.h>
int main() {
int a, b, c, max, min;
a = 1;
b = 2;
c = 3;
max = (a > b) ? ((a > c) ? a : c) : (b > c) ? b : c;
min = (a > b) ? ((b > c) ? c : b) : (a > c) ? c : a;
printf("Min : %d\n", min);
printf("Max : %d\n", max);
}
'Control Engineering > C Programming' 카테고리의 다른 글
Practice[Integral] (0) | 2024.09.04 |
---|---|
Practice[Root Formula] (0) | 2024.09.04 |
구조체(Derived Type) (0) | 2024.09.04 |
오버플로우(Overflow)와 언더플로우(Underflow) (0) | 2024.08.10 |
C언어란 (1) | 2024.08.10 |