음수에 대해 들어 보셨을 것입니다. 컴퓨터 과학과 컴퓨터 프로그래밍의 세계에 조금이라도 노출 된 적이 있다면 이진수의 개념은 완전히 이질적이지 않습니다. 그러나 프로그래밍 세계를 개인적으로 탐구하지 않았다면 이진수로 실질적으로 작업 한 적이 없을 것입니다.
컴퓨터는 스스로 "생각"하거나 "결정"할 수 없지만 순서에 따라 정확한 지시를 따를 수 있기 때문에 오래 전에 수학자들이 왔습니다. 컴퓨터 (또는 충분히 환자가있는 사람)가 숫자 0과 숫자 만 사용하여 더하기, 빼기 및 기타 수학 연산을 수행 할 수있는 방법을 마련했습니다. 1.
그러나이 두 가지 아이디어를 결합하여 음수를 생성하는 방법이 있습니까? 기계에게 종이와 펜과 같은 기존 숫자 앞에 작은 가로 막대를 붙이라고 말하는 것처럼 간단합니까? 아니면 "비트와 바이트"요소가 일을 더 복잡하게 만들까요?
이진수 란 무엇입니까?
컴퓨터는 엄청난 양의 처리 능력을 가지고 있으며, 오래된 고물조차도 가장 산술적으로 재능이있는 인간조차 이해할 수없는 속도로 계산을 수행 할 수 있습니다. 그러나 그것들은 두뇌가 아니며 복잡한 정보를 처리하도록하는 유일한 방법은 가능한 모든 것을 두 가지 상태 (예: ON 또는 OFF) 중 하나로 해제하는 것입니다.
"computer-ese"에서 단일 0 또는 1은 비트. 이들 그룹에는 다음이 포함됩니다. 니블 (4 비트), 잘 알려진 바이트 (8), 워드 (1) 및 긴 단어 (32).
일반적으로 표시되는 10 진수 (예: 492 및 35)는 10 개의 점진적 기호 (0에서 9까지의 숫자)를 포함하므로 "밑 10"입니다. 다음 위치 인 왼쪽의 다음 "10의 거듭 제곱"으로 "롤오버"합니다. 대신 이진수에는 두 개의 기호 (숫자 0과 1) 만 포함되며 "베이스 -2." 숫자의 끝에서 왼쪽으로 이동할 때마다 2의 거듭 제곱이됩니다. 끝 숫자는 1, 다음 2, 4, 8, 16을 나타냅니다. 곧.
- 10 진수는 10 진수 시스템의 임의의 숫자이며 반드시 소수점을 포함하는 숫자 일 필요는 없습니다.
이진수의 예
바이너리 "nybble"0101은 1 자리와 4 자리에 1이 있고 2와 8 자리에 0이 있습니다. 따라서 십진수는 1 + 4 = 5입니다.
마찬가지로 바이트 1001 1100은 128 + 16 + 8 + 4 (28 + 25 + 24 + 23) = 156.
그만큼 보어 이진수는 숫자가 "전환 된"숫자입니다. 예를 들어 1001 1100 = 0110 0011의 보수입니다.
음수를 이진수로 변환
음수 십진수를 이진수로 변환하는 방법은 아마도 다른 숫자 변환과 매우 다를 것입니다. 당신의 마음은 대부분의 방식에서 어느 것보다 훨씬 더 유연하기 때문에 수행했습니다. CPU. 그러나 이것은 간단한 과정입니다.
변환은 2의 보수 바이너리, 프로그래머가 컴퓨터에 1로 시작하는 이진수를 음수로 해석하도록 지시해야합니다. 다음 프로그램 이진수로 대응하는 양수를 구성하고 그 보수를 취하고 1을 더합니다.
예를 들어, 숫자 −47이 주어지면 컴퓨터는 +47에 대한 이진수를 생성합니다.
0001 1111
이것의 보완은 :
1110 0000
이것에 하나를 추가하면 다음이 제공됩니다.
1110 0001
컴퓨터는 선행 1을 음수로 처리하고 기호 1이 차지하는 2의 거듭 제곱을 단순히 더하는 것과는 다르게 결과를 처리하기 위해이 숫자에 "서명"했습니다.