프로그래밍/C
C언어에서의 음수표현법, 2의 보수와 부호 비트
2011. 2. 21.2진법만 사용하는 컴퓨터는 어떤 방식으로 음수를 표현할까? 컴퓨터는 오로지 전기신호인 1과 0, 즉 on과 off만을 인식하여 2진 연산을 합니다. 우리가 일상에서 사용하는 10이라는 수와 -10이라는 수, 즉 부호를 사용함에 따라서 음수와 양수를 나눌 수 있습니다. 그렇다면, 부호를 사용할 수 없는 컴퓨터는 어떤 방식으로 음수를 표현할까요? 부호 비트 8비트의 메모리 공간에 23이라는 수를 저장하려 한다고 가정한다면 메모리 공간에는 아래와 같은 수가 할당됩니다. 0 0 0 1 0 1 1 1 => 23 8비트의 메모리공간에 양수만을 저장한다면 0~255까지의 수를 표현할 수 있습니다. 하지만 음수를 표현하지 못한다는 문제가 생기기때문에 음수를 표현하기 위해서 최상위 비트, 즉 msb를 부호비트로 사용하게..
최상위 비트를 의미하는 MSB(Most Significant Bit)
2011. 2. 19.msb란? MSB는 Most Significant Bit의 약자로 보통 사용하지만, Most Signfinicant Byte의 약자로도 사용되기도 한다. 용어의 혼동을 막기위해 소문자 msb는 최상위 비트를, 대문자 MSB는 최상위 바이트를 나타낸다. 컴퓨터의 이진법에 따르면 msb는 가장 왼쪽에 있는 비트, 즉 가장 큰 값을 갖는 비트를 의미하게 된다. 8비트의 데이터로 예를 들어보자. 10진 정수 200을 이진법으로 표현하면 아래와 같다. 색칠되어있는 비트가 msb를 의미하며 10진수 128을 의미함을 알 수 있다. msb의 활용 msb는 C언어에서 음수를 표현할 때 부호화 비트로 사용된다.
C언어의 역사
2011. 2. 12.공부를 하다가 우리가 사용하고 있는 C언어가 대체 어디서 어떻게 왜 만들어졌는지가 궁금했다. 우선 다음은 위키백과에서 기술하고 있는 C언어의 발전과정이다. 1970년대 초 켄 톰슨(Ken Thompson)과 데니스 리치(Dennis M. Ritchie)가 당시 새로 개발된 유닉스(Unix) 운영체제에서 사용하기 위해서 만든 언어이다. 켄 톰슨은 BCPL(Basic CPL)언어를 필요에 맞추어 개조해서 "B"언어라 명명했고, 이 B언어에서 C언어가 탄생했다. 유닉스 시스템과 많은 운영체제의 커널또한 C언어로 만들어졌다. -C언어의 탄생 배경 시초에 유닉스 시스템은 저급 언어(Low-Level)인 어셈블리어로 만들어졌었다. 컴퓨터 구조마다 사용되는 기계언어가 달라지므로 기계어와 대응하는 어셈블리어도 달라지게..