진법(4)
-
Java 진법 4
음수를 2진수로 표현하기 10진 음의 정수를 2진수로 변환하려면, 먼저 10진 음의 정수의 절대값을 2진수로 변환한다. 그 다음에 이 2진수의 2의 보수를 구하면 된다. 예를 들어 -5의 2진 표현을 구하는 과정은 다음과 같다. 위의 방법은 부호가 다르고 절대값이 같은 두 정수의 2진 표현이 서로 2의 보수 관계에 있다는 것을 이용한 것으로 복잡해 보이지만 간단하다. 절대값은 부호만 떼어내면 되고, 10진수를 2진수로 변환하는 방법은 이미 배웠고, 2의 보수로 변환하는 방법도 쉽다. 이미지의 마지막 2의 보수가 음수의 2진수값이 된다. 그러므로 -5 → 1011(2) 2의 보수 구하기 서로 2의 보수의 관계에 있는 두 수를 더하면 0(자리올림 발생)이 된다. 예를 들어 2진 수 0101의 2의 보수를 구..
2021.05.28 -
Java 진법 3
n진수를 10진수로 변환 어떤 진법의 수라도 10진수로 변환하는 방법은 똑같다. 각 자리의 수에 해당 단위의 값을 곱해서 모두 더하면 된다. 예를 들어 10진수 123은 다음과 같이 풀어쓸 수 있다. 123 = 100 + 20 + 3 = 1 X 100 + 2 X 10 + 3 X 1 = 1 X 10의2승 + 2 X 10의1승 + 3 X 10 마찬가지로 2진수는 다음과 같이 표현할 수 있는데, 각 자리의 다위가 10의 제곱이 아니라 2의 제곱이라는 점을 제외하면 10진수와 동일하다. 8진수와 16진수로 변환하는 방법 역시 동일하다. 1460(8) = 1 x 8의3승 + 4 x 8의2승 + 6 x 8의 1승 + 0 x 8의 0승 = 1 x 512 + 4 x 256 + 6 x 8 + 0 x 1 = 512 + 2..
2021.05.27 -
Java 진법 2
8진법과 16진법 2진법은 오직 0과1, 두 개의 기호만으로 값을 표현하기 떄문에, 2진법으로 값을 표현하면 자리수가 상당히 길어진다는 단점이 있다. 이러한 단점을 보완하기 위해 2진법 대신 8진법이나 16진법을 사용한다. 8진수는 2진수 3자리를, 16진수는 2진수 4자리를 각각 한자리로 표현할 수 있기 때문에 자리수가 짧아져서 알아보기 쉽고 서로 간의 변환방법 또한 매우 간단하다. 2진법 - 0 1 // 2개 8진법 - 0 1 2 3 4 5 6 7 // 8개 10진법 - 0 1 2 3 4 5 6 7 8 9 // 10개 16진법 - 0 1 2 3 4 5 6 7 8 9 A B C D E F // 16개 8진법은 값을 표현하는데 8개의 기호가 필요하므로 0~7개의 숫자를 기호로 사용하면 되지만, 16진법은..
2021.05.26 -
Java 진법 1
10진법과 2진법 우리는 일상속에서 주로 사용하는 것은 10진법이다. 2진법을 알지못하면 컴퓨터의 동작원리나 데이터 처리방식을 온전히 이해할 수 없다. 지금까지 변수에 값을 저장하면 10진수로 저장되는 것처럼 설명을 하였지만, 컴퓨터는 2진수(0과1)밖에 모르기 때문에 아래의 오른쪽과 같이 2진수로 바뀌어 저장된다. 2진수 11001은 10진수로 25이다. int age = 25; age = 25 → age = 11001 이처럼 2진법은 0과 1로만 데이터를 표현하기 떄문에 10진법에 비해 많은 자리수를 필요로한다. 10진수 2와 같이 작은 숫자도 2진수로 표현하려면 2자리가 필요하다. 2진수한자리로는 1보다 큰 값을 표현 할 수 없기 떄문이다. 이것은 10진수에서 9보다 큰 수를 표현하기 위해서는 두자..
2021.05.25