티스토리 뷰
이진수
- 비트는 이진수로 이루어져 있다.
- 십진수와 이진수를 비교한다면, 십진수는 0~9로 10개의 레이블을 붙일 수 있지만, 이진수는 0~1로 두 개의 레이블을 붙일 수 있다는 것 정도의 차이가 있다.
- 우리가 거의 잊고 살고 있지만, 십진수는 10의 거듭제곱의 합을 줄여서 표기한 것이다.
- 이진수는 기수가 2이고, 사용되는 숫자가 0과 1뿐이라는 점을 빼면 똑같다. 아래 이진수를 십진수로 변환하면(다 더하면) 29가 된다.
십진수를 이진수로 변환하기
- 십진수를 이진수로 변환하는 것은 조금 더 복잡하다.
- 십진수를 2로 계속해서 나누어 나머지를 붙이는 방식이다.
- 이진수 변환하는 문제는 정보처리기사에서도 출제된다고 하니, 이 기회에 확실히 익혀두는 것이 좋겠다(https://blog.naver.com/thrmadlsgud/222537326820).
| 수 | 몫 | 나머지 |
| 1867 | 933 | 1 |
| 933 | 466 | 1 |
| 466 | 233 | 0 |
| 233 | 116 | 1 |
| 116 | 58 | 0 |
| 58 | 29 | 0 |
| 29 | 14 | 1 |
| 14 | 7 | 0 |
| 7 | 3 | 1 |
| 3 | 1 | 1 |
| 1 | 0 | 1 |
이진 연산
- 십진수를 이진수로 변환하는 것은 복잡할지 모르지만, 연산은 간단하다.
| + | 0 | 1 |
| 0 | 0 | 1 |
| 1 | 0 | 0과 올림수 1 |
바이트
- 컴퓨터에서 데이터 처리와 메모리 구성의 기본 단위는 8비트로, 이는 1바이트이다.
- 단일 바이트로는 256개(2의 8승)의 값을 인코딩할 수 있다.
- 문자나 기호들의 집합을 컴퓨터에 저장하거나 통신 목적으로 사용할 경우에는 부호로 바꾸어야 하는데, 이것이 인코딩이다.
- 0~255의 정수이거나, 7비트 아스키코드 문자 집합 중 하나일 수 있다.
- 아스키코드는 8비트로 이루어져 있는데, 7비트만 문자 표현에 쓰이고 1비트는 통신에러 검출을 위한 저장공간으로 사용된다.
- 0은 48, A는 65, a는 97로, 문자 변환과 같은 간단한 연산에 사용될 수 있으니 외워둬도 좋을 것 같다.
- 2바이트는 16비트로, 65535까지의 값을 나타낼 수 있으며, 유니코드 문자 집합에 있는 문자 한 개를 나타낼 수 있다.
- 앞서 배운대로, 아스키코드로는 문자를 나타내기 부족해서 유니코드가 탄생했다.
십육진수
- 위와 같은 문자라든가 더 크거나 복잡한 것을 나타내는 큰 그룹의 일부가 아니라, 비트 별로 다른 종류의 정보를 인코딩한다면, 개별 비트를 확인하기 위해 이진수로 쓸 수도 있다.
- 하지만 이진수는 십진수 형태보다 세 배 이상 길어서 너무 많은 공간을 차지하므로 십육진수를 대안 표기법을 사용한다.
- 십육진수는 16을 기수로 하여 16개의 숫자로 표시한다.
- 0~9, A, B, C, D, E, F로 표현된다.
- 십육진수는 RGB 색상 표현, 이더넷 주소, URL 상의 특수문자 표현에도 사용된다.
- 000000, FFFFFF는 사실 16진수였다.

- 컴퓨터를 살 때나 프로그램을 설치할 때 사용되는 64비트라는 표현은 컴퓨터가 내부적으로 데이터를 저장하기 위한 수와 주소를 가리킨다.
- 30년 전에 16비트 주소 체계에서 32비트 주소 체계 이행이 이뤄졌고, 지금은 32비트에서 64비트로의 이행이 거의 완료된 상태이다. 다음은 128비트로의 이행이 되겠지만 아직 예정된 바 없다.
맺음
- 가장 중요한 사실은 비트 모음의 의미가 상황에 따라 결정된다는 것이다. 숫자 자체로는 비트가 무엇을 의미하는지 식벼할 수 없다.
- 단순히 데이터로서 복사외는 비트들은, 프로그램이 실행될 때는 CPU에 의해 처리되면서 명령어로 처리된다.
'개발' 카테고리의 다른 글
| [Spring Boot] 테스트 케이스 작성하기 (0) | 2022.05.25 |
|---|---|
| [Spring Boot] 웹 브라우저 요청과 응답 (0) | 2022.05.25 |
| [Java] 제어자 (0) | 2022.05.18 |
| [Java] 패키지와 임포트 (0) | 2022.05.17 |
| [Java] 상속 (0) | 2022.05.17 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 제어자
- ResetController
- ORM
- 몽고db
- DI
- toCharArray
- OneToMany
- jinja2
- 배열
- IOC
- 상속
- MVC
- AssertJ
- 임포트
- ManyToMany
- 스프링부트
- 고민
- bean
- 패키지
- ManyToOne
- 단항연산자
- overfatching
- GIT
- AfterEach
- 항해99
- Java
- 서버환경
- 자바의정석
- clean-up policy
- controller
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
글 보관함
