C, C++

[20181207] 수의 체계2+ C언어 개요

SuuuuuuuL 2018. 12. 7. 10:42

 

컴퓨터의 실수 표현 (정수가 아닌 유리수 - 소수/분수)


실수(IEEE 754)

= Floating Point( 소수점이 계속 움직이기 때문에 부동소수점= 부유하는 동체인 소수점) 

* 실수는 영이 없다, 단 무한히 0에 수렴하는 수가 존재할 뿐(infinity)

0.00000000000000.......... !=0 (0이 아님! 다만 무한히 작은 수라는 뜻) 


0 .__ __ __ __

10의 -1승, 10의 -2승... 



계산의 편이를 위해서 소수점의 위치를 고정시키는 것으로 약속! 


double형(64bit)  - Float(32bit) 보다 bit 크기가 크기 때문에 오류가 적기 때문에 소수의 기본형으로 사용!


부호비트(1bit) + 소수점 고정을 위해 곱해준 2의 개수를 표현한 bit(가수부) 7bit +...


예) 8비트 의 숫자로 표현 가능한 범위

01111111 ~ 10000000

127(최대값)~ -128(최소값)

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

C언어란?  

기본언어로 윈도우도 C로 만들어짐 , 이전에 B라는 언어도 존재했음..


포인터 = 주소값

상수 = 프로그램 작성에 필요한 값, 실행에 필요한 데이터들 --상수공간(ReadOnly 영역)에 기억된다.

변수 = 프로그램 작성 시 연산의 결과 등을 저장하기 위해 할당된 메모리 공간 -------Stack, Heap 등에 생성됨


C언어의 작업 순서(Run)


전처리기(상수정의, 등 필요외부파일삽입)


소스코드(.c) ----------------->Temp File(*.c')-----------------> Object File(*.obj)------------------------> (*.exe)

preprocess                            컴파일                                      링크            실행가능한 기계어

->Loader가 메모리에올림

자바는 class loader가...




숫자표현 printf


d: 정수( 부호포함)

u: 부호없는 정수 ( unsigned)

o : 8 진수  (oct)

x : 16진수 (hex)


printf("%u",-1); // 부호가 없는 수인데 -1이면 11111111이므로 큰 수(10진수)가 출력됨! 출력값 : 4294967295
printf("%d\n",-1);
printf("%x\n",-1); // 4294967295을 8진수와 16진수로 변환한 값
printf("%o\n",-1);
----------------------------------------
< 결과값 >
4294967295
-1
ffffffff
37777777777