2의 보수법은 해당 숫자 양수에 해당하는 2진수와 음수에 해당하는 2진수를 더하면 크기가 초과돼서 사라지고 나머지는 0이 되는 수이다. 

# 2진수 부호있는10진수
1 000 0
2 001 1
3 010 2
4 011 3
5 100 -4
6 101 -3
7 110 -2
8 111 -1

보면 양수1과 음수 -1의 2진수로의 표현은 각각 001과 111인데 이것을 더하면

(1) 000이 되고 (1)은 자릿수를 초과하는 값으로써 버려진다.

좀 더 간단하게 쓰면 2의 보수는 양수의 0인 자리에 1을 넣고 1인 자리에 0을 넣은 값에서 +1하면된다.

 

3을 2진수로 011이라는 사실만 알 때 

-3은 100+001=101이란 사실을 알 수 있다.

 

반대로 -2가 2진수로 110이라는 사실을 알 때

양수 -2는 001+001=010이라는 사실을 알 수 있다.

'JAVA 02강 변수(Variable) > 진법' 카테고리의 다른 글

실수의 진법변환  (0) 2021.07.11
정수의 진법 변환  (0) 2021.07.11
8진법과 16진법(octal base hexadecimal)  (0) 2021.07.11
비트(bit)와 바이트(byte)  (0) 2021.07.11
10진법과 2진법(decimal, binary)  (0) 2021.07.11

2진수를 10진수로 변환하는 방법

각 자릿수에 0.5ⁿ을 곱하고 더해준다.

 

0.101(2진수)의 경우

0./1/0/1

0.5X1+0.5 ²X0+0.5 ³X1 = 0.5+0+0.125

0.625(10진수)

 

10진수를 2진수로 변환하는 방법

0.5 0.625 나머지
0.5 0.125 1
0.5 0.125 0
    1
    0.101

0.625(10진수)는 0.101(2진수)이다.

 

 

10진수를 n진수로 나누려면 해당 진수로 나누고 나머지 값을 앞에 적는 것을 더 이상 나눌 수 없을 때까지 반복한 다음 마지막 몫과 나머지를 아래부터 위로 순서대로 적으면 된다.

 

 

2 46 나머지
2 23 0
2 11 1
2 5 1
  2 1
  1 0

46(10진수) > 101110(2진수)

이런식으로 변환이 가능하다.

 

 

8진수는 2진수 3자리를. 16진수는 2진수 4자리를 각각 한자리로 표현할 수 있기 때문에 자릿수가 짧아져서 알아보기 쉬워지고 서로 간의 변환 방법 또한 매우 간단하다.

 

2진수를 25를 8진수로 바꾸려면 2진수를 3자리 단위로 나눈 뒤 그 3자리마다의 2진수값을 구해서 적으면 된다.

01101 > 001/101 > 1/5 > 15

 

001은 2진수로 2²X0+2X0+1X1 = 1

101은 2진수로 2²X1+2X0+1X1 = 5

16진수의 경우 2진수를 4자리 단위로 나눈 뒤 그 4자리마다 2 진수 값을 구해서 적으면 된다.

'JAVA 02강 변수(Variable) > 진법' 카테고리의 다른 글

음수의 2진 표현 - 2의 보수법  (0) 2021.07.11
실수의 진법변환  (0) 2021.07.11
정수의 진법 변환  (0) 2021.07.11
비트(bit)와 바이트(byte)  (0) 2021.07.11
10진법과 2진법(decimal, binary)  (0) 2021.07.11

한 자리의 2진수를 '비트(bit, binary digit)라고 하며, 1비트는 컴퓨터가 값을 저장할 수 있는 최소 단위이다.

보통 비트 8개를 묶어서 바이트(byte)라는 단위로 정의해서 데이터의 기본 단위로 사용한다.

이 외에도 워드(word)라는 단위가 있는데, 워드(word)는 CPU가 한 번에 처리할 수 있는 데이터의 크기를 의미한다.

 

n비트로 표현할 수 있는 10진수

값의 개수 : 2ⁿ

값의 범위 : 0~2ⁿ-1

10진법은 일상생활에서 일반적으로 쓰는 숫자이며, 2진법은 컴퓨터가 쓰는 숫자이다.

사람은 10개의 손가락을 가지고 있고, 컴퓨터는 켜짐 꺼짐 두 가지 상태를 가지고 있다.

 

int age = 25; // 변수 age에 25를 저장

 

25(10진수) > 11001(2진수)

 

2진법은 0과 1로만 데이터를 표현하기 때문에 10진법에 비해 많은 자릿수를 필요로 한다.

2진수 10진수
0 0
1 1
10 2
11 3
100 4
101 5
110 6
111 7
1000 8

 

'JAVA 02강 변수(Variable) > 진법' 카테고리의 다른 글

음수의 2진 표현 - 2의 보수법  (0) 2021.07.11
실수의 진법변환  (0) 2021.07.11
정수의 진법 변환  (0) 2021.07.11
8진법과 16진법(octal base hexadecimal)  (0) 2021.07.11
비트(bit)와 바이트(byte)  (0) 2021.07.11

+ Recent posts