본문 바로가기

CS

(5)
값에 의한 호출 & 주소에 의한 호출 & 참조에 의한 호출 1) 값 형식과 참조 형식 값,주소,참조에 의한 호출에 대해 알아보기에 앞서 값 형식과 참조 형식에 대한 이해가 필요하다. 값/참조 형식의 차이를 이해하기 위해서는 스택과 힙의 이해가 필요한데 윈도우 프로그램은 기본적으로 하나의 스레드를 갖는다. 그리고 개별 스레드마다 전용으로 사용할 수 있는 저장소가 메모리에 할당되는데 이 영역을 스택이라고 한다. 반대로 힙은 프로그램의 필요에 의해, 메모리를 요청할 때 사용할 수 있는 저장소다. 수업에서 배운 바와 같이 힙에 메모리를 할당하는 것은 개발자가 명시적으로 요청한 것이므로 스택의 메모리를 할당하고 해제하는 것과는 다르게 해제하는 과정이 별도로 필요하다. 이러한 개념을 바탕으로 값 형식의 변수는 값 자체가 스택 영역에 할당되고 변수는 그 메모리를 가리키는 것..
비트연산자 컴퓨터는 기본적으로 이진수를 통해 연산을 하는데 0,1을 통해 켜다와 끄다, 있다와 없다를 표현할 수 있다. 비트 연산은 말 그대로 비트 단위에서 수행되는 연산을 뜻하는데 기본 자료형들보다 더 작은 비트 단위에서 연산이 수행되기 때문에 속도가 빠르고 메모리 사용 또한 효율적이다. 예를 들어 bool 자료형만 해도 true / false를 표현하기 위해 1byte, 즉 8비트의 공간을 차지하게 되는데 이는 앞서 말한 이진수의 표현법대로 켜다,끄다 즉 1비트만으로 나타낼 수 있는 표현이다. 위의 표에서는 비트와 비트를 비교하여 0과 1로 나타내는 연산자들에 대해 나와 있는데 표에는 없는 지정한 수만큼 비트들을 전부 왼쪽으로 이동시키는 "" 연산자도 비트 연산자로 사용된다. 이 시프트 연산자를 이용하여 숫자를..
오버플로우와 언더플로우 각 자료형은 크기와 범위가 다르지만 모두 범위의 한계가 존재하는데 오버플로우는 변수나 데이터 유형이 저장할 수 있는 최댓값을 초과하여 값이 증가하여 발생하는 오류이고 언더플로우는 반대로 변수나 데이터 유형이 표현할 수 있는 최솟값보다 작은 값으로 감소하여 발생하는 오류를 뜻한다. 예를 들어 4비트 정수는 0000부터 1111까지 총 16가지의 다른 수를 표현할 수 있는데 부호가 있는 4비트 정수는 최솟값 -8부터 최댓값 7까지로 나타낼 수 있다. 위 사진처럼 최댓값에 1을 더하면 올려진 수는 부호를 바꾸게 되어 결과적으로 최댓값을 초과한 수는 최솟값으로 루프되는 경우가 발생하게 된다. 이러한 오버플로우와 언더플로우는 데이터가 특정 범위 내에 유지되도록 보장하는 데에 중요한 이슈가 되며 이를 고려하여 프로..
부동소수점의 의미와 표현 부동소수점의 의미 부동소수점(浮動小數點, floating point) 또는 떠돌이 소수점[1] 방식은 실수를 컴퓨터상에서 근사하여 표현할 때 소수점의 위치를 고정하지 않고 그 위치를 나타내는 수를 따로 적는 것으로, 유효숫자를 나타내는 가수(假數)와 소수점의 위치를 풀이하는 지수(指數)로 나누어 표현한다. -위키백과 발췌- --------------------------------------------------------------------------------------------------------------------------------------------------------------- 부동소수점은 실수를 표현하는 데에 사용되는 컴퓨터 과학 및 프로그래밍에서 일반적으로 사용되는 표현 방..
이진법과 2의 보수 이진법 사람은 실생활에서 0~9 사이의 숫자를 기록하고 사용하는 10진법에 익숙하지만 컴퓨터는 전류가 흐르는지 아닌지에 기반한 0과 1만을 이용하는 이진법으로 수를 표현한다. 이 때 표현된 수는 이진수라고 부른다. 그런데 수를 표현하는 데에 있어서 자연수만 존재하는 것이 아니라 음수 또한 존재하게 되는데 문제는 이진법으로 음수를 직접적으로 나타낼 방법이 없다는 것이다. 즉 이진수로 음수를 나타내기 위해선 보조적인 방법이 필요하다. 음수의 표현 1) 부호 절댓값 표현법 컴퓨터에서는 0 혹은 1의 값을 가질 수 있는 하나의 칸을 '비트(bit)' 라고 한다. 또한 1bit는 자료를 저장하는 가장 작은 단위이다. 부호 절댓값 표현법은 최상위 비트인 가장 왼쪽 비트를 부호 비트로 사용하여 0은 양수로, 1은 음..