연산자 (Operator)
산술 연산자 사칙연산 등 수치 계산 대입 연산자 증감 연산자 실습: 52/7의 나머지는? a *= b; x = ++a; x = a++;
실습 키보드로부터 소문자를 입력 받아서 대문자로 변환하세요. 입력(소문자) : a 출력예: 변환(대문자) : A
비교 연산자 변수나 수치 등의 값을 비교 조건식 Example : ==, <, >, <=, >=, != a>=b 조건식의 값 : 참(True): 1, 거짓(False): 0 Example : printf(“a<b . . . %d\n”, a<b);
논리 연산자 조건의 조합 조건부 대입 &&, ||, ! (50<=a) && (a<100) x = (조건) ? a : b a: 조건 참일 때의 값, b: 조건 거짓일 때의 값 Ex) 절대값(정수) x = (0<a) ? -a : a ;
비트 연산자 p199~ 비트 단위 논리 연산 부호 패턴 암호화 &(and), |(or), ^(xor), ~(not) char a; 1: 0000 0001, -1: 1111 1111 Ex) char a=1; printf(“%d”, a | 0x80); 암호화 b = a ^ code; c = b ^ code; 결과 a==c
Shift 연산자 p200~ 오른쪽 Shift연산자 >> 1/2 왼쪽 Shift연산자 << *2 논리shift는 0이 채워진다 (unsigned) 1111 1001 >>2 0011 1110 산술shift는 부호비트가 채워진다 1100 1000 >> 2 1111 0010 왼쪽 Shift연산자 << *2 0000 1111 <<2 0011 1100 산술shift는 부호비트는 유지되고 0이 채워진다 1111 1110 << 2 1111 1000
연산자 우선순위 우선순위 결합규칙 복잡한 연산은 ( )를 최대한 활용 a + b * c; (a + b) * c 우선순위가 같은 경우의 실행 방향 , a = b = 1; 복잡한 연산은 ( )를 최대한 활용
rand()함수1 p206 난수 발생기 씨앗값(seed) 지정 난수란 규칙성이 없는 숫자를 말한다. 0 <= rand( )함수 <= RAND_MAX : 이 범위의 정수값 발생 (stdlib.h필요) 씨앗값(seed) 지정 srand( time(0) ); // 난수 발생 기준값 time(0) // 초단위 정수값으로 현재 시간 반환
rand()함수2 난수 발생 수식 실습 N = a + b*(rand()%c) : a <= N <= (a + b*(c-1)) 사이의 값으로 a에서 시작해서 b간격으로 c개수 만큼 실습 20에서 100까지 10간격으로 난수를 발생시켜 3개의 값을 화면에 출력하시오.
End