시스템프로그램16 [시스템프로그램]02-2-2 정수의 사칙연산(2) 저번에 정수의 덧셈에 대해서 알아보았고 곱셈과 나눗셈에 대해서 알아본다. 먼저 unsigned의 곱셈을 알아보도록 한다. w-bit의 x와 y의 최대 최소값은 2^(w-1)~0이 된다. 그럼 두 수의 곱셈인 xy의 최대값은 2^2w - 2^(w+1) + 1~ 0이된다. 정리를 조금 해보자면 0 2020. 4. 28. [시스템프로그램]02-2-1 정수의 사칙연산(1) 이번 글부터는 시스템속에서 정수값들이 어떻게 사칙연산을 하는지에 관한 글이다. 먼저 순서대로 더하기부터 알아본다. 일단은 unsigned인 정수들의 합에 대해 얘기한다. w-bit인 x와y가 존재한다. x와 y의 최대값은 2^w-1값을 갔게 되고 x+y의 최대값은 2^(w+1)-2가 된다. 물론 최소값은 0이다. 밑 그림은 x와 y가 4비트라고 생각했을 때의 최대값과 최소값을 표현한 그래프이다. x와 y는 unsigned integer이기 때문에 두 값이 합과 상관없이 32bit로 표현해야 된다. 그래서 조금 정리를 해보자면 위의 식은 unsigned인 w-bit값들의 합 관련 식이다. 위 그림표를 보면 4비트인 두 수를 더하면 중간쯤에 overflow가 발생하게 된다. 4비트에서 표현할 수 있는 최대값.. 2020. 4. 27. [시스템프로그램]02-1-3 정보의 표현과 활용(3) Type conversion 타입의 변환, 여기서 형 변환은 unsigned 과 2's complement와의 형변환을 이야기 하는 것이다. 위 사진은 signed에서 unsigned으로 변환화는 과정이다. 보시다 싶이 2^(w-1) ~ 0은 변화가 없고 0~ -2^(w-1)일때는 x값에 2^w을 더하여 형변환이 이루어진다. signed unsigned의 형변환은 보기에는 간단하지만 막상 계산을 해보면 까다로운 부분들이 있다. 그래서 간편하게 x가 음수이면 x + 2^w, x가 양수이면 변하지 않는다라고 생각을 하면 쉽다. unsigned에서 signed으로 변화하는 과정은 이과정의 반대이다. 그래서 딱히 더 설명을 적지 않겠다. 그럼 실제 C언어에서의 Type conversion을 살펴 보겠다. 일단 .. 2020. 4. 26. [시스템프로그램]02-1-2 정보의 표현과 활용(2) 이제부터 정수를 표현하는 방법들을 알아볼 차례다. 정수를 표현하는 방법은 네개정도 있다. - unsigned integers - signed-magnitude encoding - 1's complement encoding - 2's complement encoding 사질 처음 unsigned integers은 unsigned의 정수들 범위에서 표현을 하는 것이기에 특별한 것이 없지만 단순이 sign integer를 표현하는 방법은 세개나 있다. 이중에서 제일 많이 사용하는 방법은 바로 2's complement encoding이다. 그 이유는 차차 살펴보도록 하자. 처음 살펴볼 encoding은 unsigned integers이다. 사실 이 표현 방법은 그리 특별한것이 없다. 이진수로 표현된 데이터를 .. 2020. 4. 20. [시스템프로그램]02-1-1 정보의 표현과 활용(1) 이번 장부터는 정보들이 어떻게 표현되고 어떻게 활용되는지 살펴볼 것이다. 이장에서 일단 code가 기계어로 어떻게 표현되는지 그리고 정수 data에 초점을 맞추고 사칙연상의 진행 과정 또한 살펴볼 예정이다. 처음으로 살펴볼 녀석은 Bit이다. 일단 Bit는 Binary Digit의 줄임말이다. Bit는 0과 1로 이루어져있고 비트 하나로는 0과1 두가지만 표현할 수 있겠지만 컴퓨터는 여러개의 비트를 사용하여 다양한 데이터 타입을 표현할 수 있다. 만약에 n 비트가 주어지면 총 2^n가지를 표현할 수 있다. 예를 들어서 2의 32승이면 대략 0 ~ 42억정도의 수가 표현 가능하다. 일반적으로 우리가 한 문자를 표현할때 8비트 다른 말로 1바이트로 표현하는데 그 이유는 2의 8승은 256개 문자를 표현 할 .. 2020. 4. 20. [시스템프로그램]01-2 컴퓨터 시스템의 투어 이제 OS에 대하여 간단히 얘기를 할건데 OS는 시스템프로그램에서 자세히 다루는 내용이 아니여서 간단히만 설명하고 넘어가도록 할것이다. OS의 기능은 크게 UI, 리소스 관리, Process 관리, 보안이 있다. UI부터 살펴보자면 UI는 User Interface의 약자이며 우리가 컴퓨터를 켰을때 나타나는 바탕화면등이 있다. UI는 크게 세가지로 나눌 수 있는데 CLI(Comman Line Interface) Shell을 사용한 UI 이전 게시물에서 ./를 활용해 명령을 내리던 컴파일러를 말한다, GUI(Graphical User Interface)는 앞서 말했던 컴퓨터의 바탕화면, 지하철표, 영화관표 자동 구매 장치의ㅡ 화면들을 GUI라고 한다, HCI(Human Cpmputer Interface)는.. 2020. 4. 17. [시스템프로그램] 01-1 컴퓨터 시스템의 투어 우리가 시스템프로그램이란 과목의 최종적인 목표는 아래의 같은 코드가 컴퓨터안에서 어떠한 절차를 통해서 우리가 원하는 결과를 보여주는 방식을 이해하는 것이다. #include int main(){ printf("hello, world\n"); return 0; } 이러한 우리가 컴파일러에 작성한 코드들은 일반적으로 source file이라고 부른다. 그리고 우리가 작성한 코드들은 컴파일을 진행하면서 binary code 0과 1로 바뀌게 되면서 컴퓨터가 이를 해석하고 실행시킨다. binary code로 바뀌기 이전에 우리가 작성한 코드들은 각문자들을 ASCII코드들로 변형을 할 수 있다. '#'는 35, 'i'는 105, SP는 32처럼 모든 값들을 변형시킬 수가 있다. 이러한 파일들은 Test file이.. 2020. 4. 17. 이전 1 2 다음