'=' 복사 대입 연산자

자료형 변수 = 대입할 값

char c = 'a';

아스키 코드로 변환 하여 메모리에 기록 함

1Byte

short s = 3;

int 메모리 반임 자주 사용 안함

2Byte

int i = 30;

integer(정수), 연산이 제일 빠름 이유는 CPU 단위에 기준으로 int 값이 정해지기 때문

4Byte

long l = 300;

int보다 큼 메모리는 동일한데 이유는 예전에는 차이났는데 비트 체제가 바끼면서 같아짐 말그대로

int 쓰지 잘 안씀

4Byte

long long ll = 3000;

int 메모리 두배 사용

8Byte

float f =3.14f;

Floating-Point, 부동소수점 f붙이고 해야 데이터 손실이 안남 이유는 f를 안 붙일 시 더블의 메모리인 8Byte를 잡고 남은 4Byte는 손실남

4Byte

double d = 3.14;

Duble Precision Floating-Point 두배정밀도 부동소수점

8Byte

sizeof - 데이터 크기를 반환하는 명령어

자료형의 특징

Ascii Table (0~127, 128가지) A:65 a:97 위 c 변수에 입력되어있는 char 자료형은 메모리에 97이라는 숫자로 입력되어있다.

128 64 32 16 8 4 2 1 - 2진법

0 0 0 0 0 0 0 0 - 컴퓨터 표기법

음수의 표현

컴퓨터 계산 원래 계산

00000101 5

+ 10000101 -5

----------------- -----

10001010 0

-10 틀린 답이 나옴

그래서 2진법 계산은 2의 보수법을 사용

2의 보수법 *보수:반대되는 값

00000101 => 5

11111010 => 1의 보수법 (반대 값)

11111011 => +1 2의 보수법 (+1)

00000101

11111011

--------------

00000000 으로 0이란 답이 나옴 맨앞 1은 Memory Overflow로 메모리를 벗어난 숫자는 버려짐

-----

실수의 표현

정밀도가 높을 수록 실수를 길게 표현 가능

3 . 14 입력한 실수

부호(+-) l 정수부(m) l 실수부

ㅣ00000000ㅣ00000011ㅣ00000000ㅣ0001110ㅣ 실제 메모리에 들어가있는 실수

+-(1.m) * 2^e-127 - 컴퓨터의 실수 표현 수식

 

#include 

int main() {
float sum = 0.0f;

for (int i = 0; i < 1000; i++) {

sum += 0.001f;
}
return 0;
}

출력 시 0.999991 실제 답 : 1 이 차이를 부동소수점 오차라고 한다.

연산자(Operator)

사칙 연산

+, -, *, / 더하기 빼기 곱하기 나누기순으로 속도가 빠르다.

ex) /2 => *0.5 곱하기 더 빠름

연산자 우선 순위

*/% > +- 답이 다르면 안되니 () 소괄호로 구분하여 묶어준다.

복합 연산자

+= , -=, *=, /=

ex) iResult *= 2; 풀이 ) iResult = iResult *2;

자료형의 승격

float iDiv = 5 / 2 ; 계산 시 소숫점이 날라감

이유 : int값으로 저장되었다가 불러와 계산하여 int값인 값이 나오며 그 답을 다시 float 값으로 바꿔 표기해서

float fDiv = 5.0f / 2.0f 이런식으로 계산해야하지만

float fDiv = 5.0f / 2 이렇게 계산하여도 답은 같다.

이유: 정밀도가 높은것에 따라서 정밀도가 떨어지는 자료형쪽이 승격한다.

이걸 자료형의 승격이라고 한다.

% : 나머지 연산자 (정수만 가능)

iResult = 8%3;

'수업 일기장' 카테고리의 다른 글

수업 일기장 #피라미드 만들기  (0) 2021.01.15
수업 일기장 #반복문 활용 및 const  (0) 2021.01.15
수업 일기장 #반복문  (0) 2021.01.15
수업 일기장 #조건문  (0) 2021.01.15
수업 일기장 #Hello World  (0) 2021.01.15

+ Recent posts