본문 바로가기

프로그래밍

c#기초 사칙연산

/*산술연산*/

#include <stdio.h>

int main() {

int a, b;

a = 10;

b = 3;

printf("a+b 는 : %d \n", a+b);

printf("a-b 는 : %d \n", a-b);

printf("a*b 는 : %d \n", a*b);

printf("a/b 는 : %d \n", a/b)"

printf("a %%b는 : %d \n \n", a%b);

printf("a / b는 : %f \n" a/b); //해서는 안될짓

return 0;

}

1_ 사칙연산

+ , - , x , ÷ 를의미하는데

컴퓨터에서는 x는 * 을이용해서 ' 5*2 = 10'

컴퓨터에서는 ÷는 / 을 이용해서 '4/2 = 2' 로 표현한다.

색다른 연산자로 %가있는데

10%3은 1이된다. (나머지값)

+ ,- ,* ,/ , % 5개를 모두합쳐 산술연산자라고 부름

2_대입 연산자

a =10; 과 10 = a; 는 같지않다.

실제 수학에서는 두가지는 별반 차이가없지만, C언어 컴파일러는 ' = ' 라는 기호 뒤에서 부터 해석하기때문에

a = 10은 '10을 a에 대입하라' 이지만

10 = a는 'a를 10에 대입하라'가 된다.

즉 이상한 문장이 되면서 오류가난다.

' = ' 를 대입연산자라고하는데, 왜냐하면 우측의 값을 좌측에 대입 하라는 것이기 때문이다.

3_

printf("a %% b 는 : %d \n \n", a%b);

%%는 %를 '표시'하기 위한 방법입니다. 왜냐하면 %하나로는 %d, %f와 같이 사용될 수있기 때문입니다.

/* 산술변환 */

#include <stdio.h>

int main( ) {

int a;

double b;

a = 10;

b= 3;

printf("a/b 는 : %f \n", a /b );

printf("b/a 는 : %f \n", b /a);

return 0;

}

4_산술변환

a가 int형 변수이고, b가 double 형 변수인데, double이 int에 비해서 포함하는 수가 더 크므로, 큰 쪽으로 산술변환됨.

일단 정수형변수랑 실수형 변수가 만나면 무조건 실수형 변수쪽으로 상승되는데, 이는 실수형 변수 범위가 int보다 훨씬 넓기

때문, 또한 double 형태로 산술변환되므로 결과도 double형태로 나옴.

5_

printf(" a / b는 : %d \n", a/b);

와 같이하면 오류가 생기게 됩니다. 왜냐하면 %d는 정수형 값을 출력하는 방식입니다.

[double형 변수로 산술변환되어서 실수형 변수쪽으로 상승되었는데, %d 정수형 값을 출력하라고해서 오류가 나는것임]

대입 연사자

/* 대입 연산자 */

#include <stdio.h>

int main() {

int a = 3;

a = a+ 3;

printf("a의 값은 : %d \n", a);

return 0;

}

6_변수선언

int a = 3;

이것은

int a;

a = 3;

위의 문장과 아래의 문장은 동일한 변수선언이다.

7_ 연산자 우선순위

a + 3의값을 a에 대입. 따라서 a = 6이 됨.

이때 이와깉이 계산 될 수 있는 이유는 +를 =보다 먼저 연산하기 때문입니다. 즉 a + 3을 먼저한 후, 그 값을 대입 하는 순서를 거치기 때문에 a 에 6이라는 값이 들어 갈 수있습니다. 이러한것을 연산자 우선순위 라고합니다.

'프로그래밍' 카테고리의 다른 글

c#기초 scanf  (0) 2020.02.20
c# 연산  (0) 2020.02.20
c# 기초 메모리  (0) 2020.02.19
c#기초 2진법  (0) 2020.02.18
c# 기초  (0) 2020.02.18