상세 컨텐츠

본문 제목

자료구조 기초

개발생활/DataStructure

by 한국인맛집 2017. 12. 6. 02:09

본문

반응형


자료구조


자료구조(Data Structure): 자료를 효율적으로 표현하고 저장 관리 처리 정리하는것.


primitive data type[단순구조]

compositve data type [복합구조]

abstractive data type [추상구조]

Boolean 

Array 

List 

Character 

Record (tuple , struct)

Assoiative array 

Double 

 Union

Set 

Floating-point

 

Map 

Integer

 Stack

Enum 

 Queue

 

 Tree

 <Data Structure Table>





-Integer

Integer  : C++/C 정수형 부호가 있는 타입으로 일반적인 경우에 32BIT (4Byte) 저장공간을 가진다 특수한경우 2Byte,8Byte일 수도있다.


모든C프로그램은 Integer 기반으로 작성되어있어 매우 중요하다.




-Signed Integer


부호있는 정수형타입 

모든 C언어에서 선언하는 int Data Type 은 Signed Integer 이다.


 31

30 

29 

28 

27 

26 

25 

24 

23 

22 

21 

20 

19 

18 

17 

16 

15 

14 

13 

12 

11 

10 

0



31 번째 열은 Sign bit / index bit 라 하고 부호를 나타낸다 ( 0일 경우 양수 , 1일경우 음수를 나타낸다)

0~30번째 열은 2진수로 표현된다.

일반적인 경우 32 bit이다 ( 0~ 31 번째 ) 

(-2147483648   ~ +214783647 까지 표현된다.)


-Unsigned Integer


부호가 없는 정수형타입

배열의 인덱스 , 포인터 의 주소값을 담는데 사용한다.






-Floating-point

부동소수점은 실수를 표현할 때 소수점의 위치를 고정하지 않고 그 위치를 나타내는 수를 따로 적는 것.


Floating-point의 가장중요한점은 정확하지가 않을 확률이 높다. 정밀도 문제가 있다 


01-09a floating point format

<http://www.plcdev.com/getting_the_point_about_floating_point_numbers>




부동소수점의 정밀도 문제 발생이유


유효 숫자를 잃어버리는 문제 뿐만 아니라, π와 0.1를 정확하게 표현하지 못하는 문제와 다른 약간의 부정확성이 다음과 같은 현상을 일으킨다:

  • 소거: 거의 같은 두 값을 빼는 것은 정확성을 매우 많이 잃게 된다. 이 문제가 아마도 가장 일반적이고 심각한 정확도 문제이다.
  • 정수로의 변환 문제: (63.0/9.0)을 정수로 변환하면 7이 되지만 (0.63/0.09)는 6이 된다. 이는 일반적으로 반올림 대신 버림을 하기 때문이다.
  • 제한된 지수부: 결과값이 오버플로되어 무한대값이 되거나 언더플로되어 비정상 값 또는 0이 될 수 있다. 만약 비정상 값이 되면 유효숫자를 완전히 잃어버린다.
  • 나눗셈이 안전한지 검사하는데 문제가 생김: 제수(나눗수)가 0이 아님을 검사하는 것이 나눗셈이 오버플로되고 무한대값이 되지 않는 걸 보장하지 않는다.
  • 같음을 검사하는데 문제가 생김: 수학적으로 같은 계산결과가 나오는 두 계산 순서가 다른 부동소수점 값을 만들어낼 수 있다. 프로그래머는 어느정도의 허용 오차를 가지고 비교를 수행하지만, 그렇다고 해서 문제가 완전히 없어지지 않는다.


출처 : 위키피디아

https://ko.wikipedia.org/wiki/%EB%B6%80%EB%8F%99%EC%86%8C%EC%88%98%EC%A0%90

반응형

'개발생활 > DataStructure' 카테고리의 다른 글

Binary Search Tree 구현. 자료구조 공부  (31) 2017.06.08
Class 사용 Queue 구현  (0) 2017.05.25
Insertion_sort_ 구현  (0) 2017.05.25
[Data_Struct] Stack 구현  (0) 2017.05.23
Linked_list [data_struct]  (31) 2017.05.22

관련글 더보기