하트위키
최근 변경
최근 토론
임의 문서
도구
최근 변경
2진수
(r3 문단 편집)
닫기
RAW 편집
미리보기
== 표현법 == xxx(2)와 같은 형태로 표기한다. 예를 들어 2는 한 자리 올려서 10(2), 6은 110(2)이 된다. 그 외에 숫자 끝에 아래첨자로 2를 작성하여 1100,,2,,처럼 2진수임을 나타내는 방식도 있다. 컴퓨터 공학을 전공하는 사람들 중에는 이진수를 쓰고 뒤에 B를 붙이는 경우도 있는데, 이는 어셈블리어에서 2진수를 나타낼 때 1100B 형식으로 작성하기 때문이다. 전자 기기에서 음수는 첫 자리(가장 높은 자리)의 수가 1인 것으로 나타낸다. 즉 첫 번째 숫자가 0이면 양수이고, 1이면 음수이다. 이건 그냥 컴퓨터의 정수 표기법에 대한 약속이고 진법 자체와는 관련이 없다. 1의 보수(1's complement, 1'C)[* 補數, complement], 2의 보수(2's complement, 2'C) 등의 방식이 있으며, 컴퓨터에서 가장 널리 사용하는 것은 2의 보수이다. 1의 보수는 양수에서 모든 비트를 반전시켜서 표현하는 것이고, 여기에 1을 더한 것이 2의 보수이다. 예를 들어보면 다음과 같다. * {{{0000 0101}}} = 숫자 5 * {{{1111 1010}}} = 비트 반전 (1의 보수에서의 -5) * {{{1111 1011}}} = 비트 반전에 1을 더함 (2의 보수에서의 -5) 1의 보수에서는 0000 0000과 1111 1111이 모두 0이 되므로 0이 두 가지로 표현되는 문제가 생긴다. 2의 보수 표기는 10진수와 상호 변환하기 가장 어려운 표기법이긴 하나[* 그래봤자 별거 없다. 비트 반전시키고 1 더하면 끝이다.], 연산에서 양수와 음수를 똑같이 취급할 수 있다는 엄청난 이점이 있다. 예를 들어 3 + (-5)를 한다고 하자. 2의 보수 표기법에서는 0000 0011 + 1111 1011이 되고 계산해 보면 1111 1110 = -2가 된다. 마치 둘 다 양수인 양 더했더니 올바른 값이 나와버렸다. 이는 음수+음수도 마찬가지다. -5 + (-7) = 1111 1011 + 1111 1001 = 1 1111 0100 = 1111 0100 = -12이다. 다른 어떤 음수 표기법도 부호 확인 없이 때려 넣으면 저렇게 정답이 나오지 않는다. 이렇게 연산 과정에서 부호를 고려할 필요가 없다는 점은 속도에 약간의 이익을 주는데, 덧셈과 뺄셈이라는 연산은 CPU 내에서 10진수로 출력하기 따위와는 비교가 불가능할 정도로 많이 하는 연산이므로 컴퓨터는 내부적으로 2의 보수 표기법을 쓴다.
요약
문서 편집을
저장
하면 당신은 기여한 내용을
CC BY-SA 4.0
라이선스로 배포하고 기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다. 이
동의는 철회할 수 없습니다.
비로그인 상태로 편집합니다. 로그인하지 않은 상태로 문서 편집을 저장하면, 편집 역사에 본인이 사용하는 IP(216.73.216.252) 주소 전체가 영구히 기록됩니다.
저장
닫기
Liberty
|
the tree