본문 바로가기

컴퓨터/C언어

8 .(C언어 ) 컴퓨터가 데이터를 표현하는 방식

본포스팅은 개인의 복습을 겸한 포스팅이며

이 포스팅을 참고하는것은 좋으나 이걸보고 공부는 불가능할거라고 생각됩니다 (책사서 공부하는게 잴 도움됩니다)


본 포스팅은 윤성우의 열혈 C프로그래밍을 기초로 작성된글입니다


안녕하세요 sdk입니다


괭장히 오랬만의 C언어 포스팅인거같습니다



컴퓨터는 데이터를 어떻게 표연할까요?

알고계시는분들이 더 많을겁니다

컴퓨터는 2진수를 이용해 모든 연산을 합니다

2진수란 0과 1을 의미합니다

001000011 이런식으로 말이죠


하지만 사람에겐 10진수가 훨씬 더 익숙합니다

10더하기 10을 암산할줄 아실겁니다

이 10을 2진수로 바꾸면

1010 입니다

1010 + 1010 을 한뒤 이것이 20이라는걸 증명할수있으신가요?

암산으로 말이죠 (하실수 있는분도 계실겁니다 )


이처럼 사람에겐 10진수가 더 익숙합니다


하지만 컴퓨터는 다르죠  컴퓨터는 2진수가 훨씬 더 친합니다

왜냐면 

1 (켜짐)

0 (꺼짐)


이렇게 확실하게 신호를 주고받을수있으니까요



어쨋든 2진수로 바꾸는 식은

어떤 수를 2로 나눈뒤

나머지를 옆에써줍니다

그런후 몫을 다시 2로 나누고 나머지를 옆에 써줍니다 (나머지가없으면 0을 써주세요)

마지막 1이 남았으면

그걸 나머지자리에 써주신후

거꾸로 읽어주시면 됩니다


ex) 5/2 = 2 ...1

     2/2 = 1 ...0

     1/ 2 = 0 ..1


5의 2진수는 101 이 됩니다


이런식으로 구하시면되고

16진수라는것도 있습니다

16진수란 0xA 

이런식으로 나타내며 10이 A

15이 F입니다

즉 16자리가 되면 자리를 올라가는게 16진수입니다



이포스팅은 알고계시라는거지

절때 반드시 중요하단 이야긴아닙니다

알고있는것과 모르는것은 엄청난 차이이니까요


어쨋든 컴파일러가 다 변환해주는데 상관없다고하시면 나중에

쓰일수있다는걸 명심하시기바립니다

오늘은 여기서 간단하게 포스팅마치겟습니다

감사합니다.