leecom116

제이의 기술 블로그
  • Print (216)
    • Frontend (29)
      • React (3)
      • HTML, CSS (8)
      • JavaScript (11)
      • JQuery (4)
      • JSP (2)
    • Backend (59)
      • Java (31)
      • Spring (11)
      • Spring Boot (0)
      • Python (1)
      • Node.js (1)
      • C, C++ (12)
      • Linux (2)
    • Database (3)
      • MariaDB (0)
      • Oracle (0)
      • MySQL (0)
    • Project (1)
    • Algorithm (67)
      • 백준 (43)
      • 프로그래머스 (0)
      • 이코테 (6)
      • 코드업 (17)
    • Tool (2)
      • Git (1)
      • Log (1)
    • CS (4)
    • Tech Interview (18)
      • Java (9)
      • Web (9)
    • Study (31)
      • 인프런 (3)
      • 정보처리기사 (8)
      • util (4)
      • 쌍용 (14)

깃허브

    https://github.com/leecom116

«   2025/05   »
일 월 화 수 목 금 토
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

최근 글

인기 글

블로그 메뉴

  • 홈
  • 태그
  • 방명록

태그

  • 참조형 변수
  • char
  • 정보공학 방법론
  • man month
  • 나도코딩
  • 자바의 정석
  • 웹 개발
  • 객체 배열
  • 코드업 기초
  • HTML
  • 논리 연산자
  • 산술 변환
  • c언어
  • 메타포어
  • JSP
  • 델파이 기법
  • CSS
  • 코드업
  • 의존성 주입
  • 자바 예외 처리
  • 코드업 기초100제
  • 웹 개발 부트캠프
  • 나선형 모델
  • C언어 프로젝트
  • Web Developer
  • Associate
  • 코드업 2차원 배열
  • 웹개발
  • 자바 인터페이스
  • static메서드

최근 댓글

hELLO · Designed By 정상우.
leecom116
Backend/Java

자바의 정석 정리(5) - 진법과 보수

2022. 5. 19. 07:53

진법
10진법과 2진법
10진법 : 0~9의 숫자로만 데이터를 표현
2진법 : 0과 1의 숫자로만 데이터를 표현

비트(bit, binary digit) : 한 자리의 2진수, 컴퓨터가 값을 저장할 수 있는 최소단위
바이트(byte) : 비트 8개를 묶은 단위(=8bit), 데이터의 기본 단위
워드(word) : CPU가 한 번에 처리할 수 있는 데이터의 크기, CPU의 성능에 따라 워드의 크기가 달라짐
ex) 32비트 CPU -> 1word = 32비트, 64비트 CPU -> 1word = 64비트

n비트로 표현할 수 있는 10진수
값의 개수 : 2^n
값의 범위 : 0 ~ 2^n - 1

8진법과 16진법
8진수 : 2진수 3자리를 한 자리로 표현
16진수 : 2진수 4자리를 한 자리로 표현

2진수 1010101100
8진수 : 1254
16진수 : 2AC

10진수를 n진수로 변환
10진수에서 n(2, 8, 16)진수로 변환하려면 n으로 반복해서 나눈다
결과값인 몫부터 시작해 아래에서 위쪽으로 모든 나머지를 나열하면 해당 진수로 변환이 완료된다

n진수를 10진수로 변환
각 자리의 수에 해당 단위의 값을 곱해서 모두 더하면 된다

10진 소수점수를 2진 소수점수로 변환하는 방법
10진 소수점수에 2를 계속 곱한다

2의 보수법
더해서 2가 되는 두 수의 관계, 10진수 2는 2진수로 10
2진수로 10은 자리올림이 발생하고 0이 되는 수
2의 보수 관계에 있는 두 2진수(부호가 다르고 절대값이 같은 수)를 더하면 0이 된다

음수를 2진수로 표현하기
10진 음의 정수를 2진수로 변환하려면 10진 음의 정수의 절대값을 2진수로 변환한다
그 후에 2진수의 2의 보수를 구한다
ex) -5(10) --> 5(10) --> 0101(2) --> 1011(2)
(절대값) ( 2진수) ( 2의 보수)

1의 보수 : 0을 1로, 1을 0으로 바꾸면 된다
2의 보수 = 1의 보수 + 1
0101 : 1의 보수 = 1010
: 2의 보수 = 1011

※ 음수의 2진 표현을 구하는 방법
1. 음수의 절대값을 2진수로 변환한다
: -5의 절대값인 5를 2진수로 변환한다 10진수 5를 2진수로 변환하면 0101 이다
2. 1에서 구한 2진수의 1을 0으로 0은 1로 바꾼다 (1의 보수 구하기)
: 0101이 1010 이 된다
3. 2의 결과에 1을 더한다 (2의 보수 구하기, 1의 보수 + 1)
: 1010에 1을 더하면 1011이 되고 이것이 -5의 2진 표현이다

저작자표시 (새창열림)

'Backend > Java' 카테고리의 다른 글

자바의 정석 정리(7) - 아스키와 유니코드  (0) 2022.05.20
자바의 정석 정리(6) - 기본형 타입  (0) 2022.05.19
자바의 정석 정리(4) - 실수형 출력  (0) 2022.05.18
자바의 정석 정리(3) - Scanner  (0) 2022.05.18
자바의 정석 정리(2) - 리터럴과 지시자  (0) 2022.05.15
    'Backend/Java' 카테고리의 다른 글
    • 자바의 정석 정리(7) - 아스키와 유니코드
    • 자바의 정석 정리(6) - 기본형 타입
    • 자바의 정석 정리(4) - 실수형 출력
    • 자바의 정석 정리(3) - Scanner
    leecom116
    leecom116

    티스토리툴바