본문 바로가기

프로그래밍 언어/C언어

C언어 - 이진수

 

 

우리가 흔히 사용하는 숫자 1, 2, 3, ···, 10 등의 숫자는 십진수라고 일컫는다.

 

하지만 컴퓨터는 이진수 기반의 체계로

0과 1을 사용하여 컴퓨터 내에서 정보를 전달한다.

 

컴퓨터가 이진수를 사용하는 이유는

컴퓨터가 의미를 구분할수 있는 최소 단위가 On과 Off로

전기적 신호로 의미를 전달 할 수 있는 가장 간단한 방법이기 때문입니다.

 

그럼 0과 1이 의미하는 것은 무엇인가?!

위의 그림 그대로 0은 OFF 상태, 1은 ON 상태이다.

 

 

우리가 이진수를 쉽게 이해하기 위해선 자리수 중요하다고 볼 수 있다.

 

아래에 십진수 7359 가 있다. ( 자리수에 대한 예시일 뿐 숫자와 연관X )

 

( 10^2 처럼 ^2는 제곱(2승), ^3는 세제곱(3승) 이다.)

 

7359는 7000 + 300 + 50 + 9 로 표현할 수 있으며
7 * 10^3 + 3 * 10^2 + 5 * 10^1 + 9 * 10^0 으로 나타낼 수 있다.

 

아래에 이진수 010010 이 있다. ( 자리수에 대한 예시일 뿐 숫자와 연관X )

 

말 그대로 10^n 을 2^n 으로 바꾸어 생각하면 된다.

 

( 참고로 십진수든 이진수든 가장 큰 자리수는 k^n-1 이라고 생각하면 편하다.)

 

 

이제 본격적으로 십진수를 이진수로 바꾸어보는 작업을 해보자.

 

 

중학교때 배웠던 최소 공배수, 최대 공약수를 구하는 방법을 이용하면 된다.

 

위의 사진을 본다면 확실히 이해할 수 있으므로
설명이 필요없다고 생각한다. (찡긋!)

 

 

이번에는 음수에 대해다루어보자.

1의 보수에서는 그냥 0을 1로, 1을 0으로 바꾸어주면 된다.

2의 보수에서는 1의 보수에 + 1 을 해주는 작업이 필요한데

 

이 사진을 본다면 확실히 이해할 수 있을 것이다.

 

 

 

 

 

 

 

 

https://book.naver.com/bookdb/book_detail.nhn?bid=8187381

'프로그래밍 언어 > C언어' 카테고리의 다른 글

C언어 - 구구단 출력  (0) 2020.05.16
C언어 #include <stdio.h>  (0) 2020.05.13
C언어 - 할당 연산자  (0) 2020.05.07
C언어 - 비주얼 스튜디오 실행 오류  (1) 2020.05.05
C언어 - 비주얼 스튜디오 설정  (0) 2020.05.05