이진수

Binary number

2진수2진수 체계 또는 2진수 체계에서 표현되는 숫자로, 일반적으로 "0" (0)과 "1" (1)의 두 기호만 사용하는 수학적 표현 방식이다.

base-2 numeral system은 radix가 2인 위치 표기법이다. 각 숫자를 비트 또는 이진수라고 한다. 논리 게이트를 이용한 디지털 전자 회로에 대한 그것의 직접적인 구현 때문에, 바이너리 시스템은 언어의 단순성 때문에, 다양한 다른 인간의 통신 기술보다 선호되는 시스템으로서 거의 모든 현대의 컴퓨터와 컴퓨터 기반 장치들에 의해 사용된다.

역사

현대의 2진수 체계는 16,17세기 유럽에서 토마스 해리엇,후안 카라무엘 로보코위츠,고트프리드 라이프니츠에 의해 연구되었다. 그러나, 이진수와 관련된 시스템은 고대 이집트, 중국, 인도를 포함한 여러 문화권에서 일찍이 나타났다. 라이프니즈는 특히 중국 아이칭에서 영감을 얻었다.

이집트

호루스의 눈의 일부분으로 표현된 것으로 생각되는 산술적 값

고대 이집트의 서기관들은 분수에 이집트 분수(이진수 체계와는 무관함)와 호루스-아이 분수(수학의 많은 역사가들이 이 계통에 사용된 상징들이 비록 논쟁의 여지가 있지만 호루스의 눈을 형성하기 위해 배열될 수 있다고 믿기 때문에 그렇게 불린다)[1]라는 두 가지 다른 계통을 사용했다. 호러스-아이 분수는 곡물, 액체 또는 기타 척도의 일부 분량에 대한 이진 번호 매기기 시스템으로, 헤캣의 일부분은 1/2, 1/4, 1/8, 1/16, 1/32 및 1/64의 이진 분수의 합으로 표현된다. 이 체계의 초기 형태는 대략 기원전 2400년 이집트 제5왕조의 문서에서 찾을 수 있으며, 완전히 개발된 상형문자 형태는 대략 기원전 1200년 이집트 제19왕조까지의 날짜다.[2]

고대 이집트의 곱셈에 사용된 방법도 이진수와 밀접한 관련이 있다. 이 방법에서 한 숫자를 1초에 곱하는 것은 값(초기적으로 두 숫자 중 첫 번째 숫자)이 두 배가 되거나 그 안에 첫 번째 숫자가 다시 추가되는 단계의 순서에 의해 수행된다. 이러한 단계를 수행할 순서는 두 번째 숫자의 이진 표현에 의해 주어진다. 예를 들어, 이 방법은 기원전 1650년경에 만들어진 라인드 수학적 파피루스(Rhind Mathematical Papyrus)에서 사용될 수 있다.[3]

중국

도이스트 바구아

I Ching은 중국에서 기원전 9세기부터 시작되었다.[4] I Ching의 2진법 표기법은 그 2진법 점괘 기법을 해석하는 데 사용된다.[5]

음양의 도교적 이중성을 바탕으로 하고 있다.[6] 3비트 및 6비트 이진수와 유사한 8괘(바구아)64괘("sixty-4" gua")의 세트가 적어도 고대 중국 주나라 때쯤 사용되어 있었다.[4]

송나라 학자 샤오융(1011~1077)은 수학적으로 쓰려는 의도는 아니었지만 현대적인 이진수와 비슷한 형식으로 육각형을 재배열했다.[5] 샤오융의 사각형에서 단일 육각 문자 위에 가장 작은 비트를 보고 단선을 0으로, 단선을 1로, 단선을 1로, 단선을 1로, 단선을 0으로, 단선을 0으로, 단선을 0으로 하여 오른쪽 위에서 오른쪽으로 행을 따라 읽는 것은 0부터 63까지의 순서로 해석할 수 있다. [7]

인도

인도의 학자 핑갈라(Pingala, BC 2세기)는 프로소디를 묘사하기 위한 이진법을 개발했다.[8][9] 그는 짧은 음절과 긴 음절의 형태로 이진수를 사용했는데(후자는 짧은 음절과 길이가 같은 두 음절) 모스 부호와 비슷했다.[10][11] 그것들은 라후(빛)와 구루(하늘) 음절로 알려져 있었다.

핑갈라의 힌두 고전인 찬다anda아스트라(8.23)는 각 미터마다 독특한 값을 주기 위해 행렬의 형성을 묘사하고 있다. "찬다지아스트라"는 말 그대로 산스크리트어로 미터기 과학을 의미한다. 핑갈라 계통의 이진 표현은 오른쪽으로 증가하며, 현대 위치 표기법의 이진수처럼 왼쪽이 아니다.[10][12] 핑갈라의 시스템에서는 숫자가 0이 아니라 1번에서 시작된다. 4개의 짧은 음절 "0000"은 첫 번째 패턴이며 값 1에 해당한다. 숫자 값은 장소 값의 합에 하나를 추가하여 얻는다.[13]

다른 문화

프랑스령 폴리네시아망가레바 섬의 주민들은 1450년 이전부터 혼성 이진 십진법을 사용하고 있었다.[14] 바이너리 톤의 슬릿 드럼은 아프리카와 아시아 전역의 메시지를 인코딩하는 데 사용된다.[6] I Ching과 유사한 이진 조합은 중세 서양의 풍수지리뿐만 아니라 이파 같은 전통적인 아프리카 점괘에서도 사용되었다.

라이프니츠의 서양 전임자들

13세기 후반에 라몬 렐은 그 시대의 모든 인간 지식의 모든 분야에 있어서 모든 지혜를 설명하고자 하는 야망을 가지고 있었다. 그런 목적을 위해 그는 컴퓨팅 과학과 인공지능의 전신으로 여겨져 온 수많은 간단한 기본 원리나 범주의 이항 조합에 기초한 일반적인 방법이나 'As generalis'를 개발했다.[15]

1605년에 프랜시스 베이컨은 알파벳 문자를 2진수 순서로 축소할 수 있는 시스템을 논의했는데, 이 문자는 임의의 텍스트에서 거의 눈에 띄지 않는 글꼴 변화로 인코딩될 수 있다.[16] 중요한 것은, 바이너리 인코딩의 일반적인 이론에 대해서는, 이 방법은 어떤 물체에도 전혀 사용될 수 있다고 덧붙였다: "만약 그 물체들이 벨, 트럼펫, 빛과 토치, 그리고 머스크에츠의 보고와 같은 자연의 모든 기구들에 의해서만 2배의 차이점을 가질 수 있다면."[16] (베이컨의 암호 참조)

1617년 존 네이피어는 문자에 의한 비위위표현을 이용하여 이항 계산을 하기 위해 위치 산술이라고 불리는 시스템을 기술했다. 토마스 해리엇은 2진법을 포함한 몇몇 위치 번호 체계를 조사했지만 그의 결과는 발표하지 않았다. 그것들은 나중에 그의 논문에서 발견되었다.[17] 아마도 1700년 후안 카라무엘 로브코위츠에 의해 유럽에 처음으로 출판되었을 것이다.[18]

라이프니즈와 아이칭

고트프리드 라이프니즈

라이프니츠는 1679년에 이진법 번호 매기기 공부를 했다. 그의 연구는 그의 기사인 《Despection de l'Arithmétique Binaire》(1703년 출판)에 등장한다. 라이프니츠 기사의 전체 제목은 영어로 "1, 0자만을 사용하는 바이너리 산술의 설명"으로 번역되며, 그 유용성에 대한 일부 언급과 함께, 조명 위에서 푸자이고대 중국 인물들에게 던져진다.[19] 라이프니츠의 시스템은 현대의 2진수 체계처럼 0과 1을 사용한다. 라이프니츠의 2진수 체계의 예는 다음과 같다.[19]

00 0 0 1 숫자 값 2
01 0 1 0 숫자 값 2
02 1 0 숫자 값 2
13 0 0 0 숫자 값 2

라이프니츠는 아이칭의 육각형을 이항 미적분학의 증거로 해석했다.[20] 시노필레로서 라이프니즈는 아이칭에 대해 알고 있었고, 그것의 육각형이 0에서 111111까지의 이진수에 어떻게 대응하는지 매혹적으로 지적했으며, 이 지도는 그가 동경하는 철학적 수학의 종류에서 중국의 주요 성취에 대한 증거라고 결론지었다. 그 관계는 그의 보편적인 개념인 언어 또는 특징적인 보편적 개념에 대한 중심적인 생각이었는데, 이는 고틀롭 프레지, 조지같은 후계자들이 현대 상징적 논리를 형성하는데 있어서 밀접하게 따를 수 있는 대중적인 생각이었다.[21] 라이프니즈는 1685년 선교사로 중국을 방문한 프랑스 예수회 요아힘 부베트와의 접촉을 통해 아이칭에 처음 소개되었다. 라이프니츠는 아이칭 육각문자를 기독교인으로서 자신의 종교적 신념의 보편성을 긍정하는 것으로 보았다.[20] 바이너리 숫자는 라이프니츠의 신학의 중심이었다. 그는 2진수들이 기독교적 사상인 크레아티오니힐로나 무에서 창조되는 것을 상징한다고 믿었다.[22]

[이교도들에게 전하기 쉽지 않은 개념]은 하나님의 전능하신 힘을 통해 전능하신 니힐로(ex nihilo)를 창조한 것이다. 이제 이 힘을 숫자의 기원보다 더 잘 표현하고 증명할 수 있는 것은 없다고 말할 수 있는데, 이 힘은 단순하고 꾸밈이 없는 '하나'와 '제로' 또는 '무'의 발표를 통해 여기서 제시되기 때문이다.

Leibniz's letter to the Duke of Brunswick attached with the I Ching hexagrams[20]

후기 개발

조지 불

1854년 영국의 수학자 조지 부울부울대수로 알려지게 될 논리대수적 체계를 상세히 기술한 획기적인 논문을 발표했다. 그의 논리적인 미적분은 디지털 전자회로 설계에 중요한 역할을 하는 것이었다.[23]

1937년 Claude ShannonMIT에서 사상 처음으로 전자 계전기 및 스위치를 사용하여 부울대수와 이진 산수를 구현한 석사 논문을 작성했다. 릴레이 개폐 회로기호 분석이라는 제목의 섀넌의 논문은 본질적으로 실용적인 디지털 회로 설계를 설립했다.[24]

1937년 11월 당시 벨 연구소에서 일하던 조지 스티비츠는 이진법 덧셈을 사용하여 계산한 '모델 K'(키친을 위해, 그가 조립한 곳)라고 명명하는 릴레이 기반의 컴퓨터를 완성했다.[25] 벨 연구소는 1938년 말 스티비츠를 지휘하는 완전한 연구 프로그램을 승인했다. 1940년 1월 8일에 완성된 그들의 콤플렉스 넘버 컴퓨터는 복잡한 숫자들을 계산할 수 있었다. 스티비츠는 1940년 9월 11일 다트머스 대학에서 열린 미국수학협회 회의에 대한 시연에서 전화선을 통해 복합수학 계산기 원격 명령을 텔레타이프로 전송할 수 있었다. 그것은 전화선을 통해 원격으로 사용된 최초의 컴퓨터 기계였다. 이 시위를 목격한 콘퍼런스의 일부 참가자들은 존 폰 노이만, 존 모클리, 노르베르트 비너였는데, 그는 이 시위에 대해 회고록에 썼다.[26][27][28]

1935년부터 1938년 사이에 콘래드 주세가 설계·구축한 Z1 컴퓨터부울 논리이진 부동 소수점 번호를 사용했다.[29]

표현

어떤 숫자도 일련의 비트(이진수)로 나타낼 수 있으며, 이는 두 개의 상호 배타적 상태에 있을 수 있는 어떤 메커니즘으로 나타낼 수 있다. 다음 기호 행 중 어느 하나라도 이진수 숫자 값 667로 해석할 수 있다.

1 0 1 0 0 1 1 0 1 1
y n y n n y y n y y
바이너리 클럭은 이진수 값을 표현하기 위해 LED를 사용할 수 있다. 이 시계에서 LED의 각 열은 전통적인 성역수 시간의 이진 코드 십진수를 보여준다.

각 경우에 표시되는 숫자 값은 각 기호에 할당된 값에 따라 달라진다. 컴퓨팅 초기에는 스위치, 펀치 구멍, 펀치된 종이 테이프가 이진수 값을 나타내기 위해 사용되었다.[30] 현대 컴퓨터에서는 숫자 값이 두 개의 다른 전압으로 표현될 수 있다. 자기 디스크에서는 자기 극성을 사용할 수 있다. "긍정적", "" 또는 "온" 상태는 반드시 1의 숫자 값과 동일하지는 않으며, 사용 중인 아키텍처에 따라 달라진다.

아라비아 숫자를 사용한 숫자의 관례적인 표현에 따라, 이진수는 일반적으로 기호 01을 사용하여 쓰여진다. 2진수를 쓸 때 밑줄 또는 라디스를 나타내기 위해 종종 첨자, 접두사 또는 접미사가 붙는다. 다음 표기법은 동일하다.

  • 100101 이진수(형식별표)
  • 100101b(이진 형식을 나타내는 접미사, Intel 규약이라고[31][32] 함)
  • 100101B(이진 형식을 나타내는 접미사)
  • bin 100101(이진 형식을 나타내는 접두사)
  • 1001012(기본-2(binary) 표기법을 나타내는 첨자)
  • %100101(이진 형식을 나타내는 접두사, 모토로라 협약이라고[31][32] 함)
  • 0b100101(이진 형식을 나타내는 접두사, 프로그래밍 언어에서 공통)
  • 6b100101(프로그래밍 언어에 공통인 이진 형식의 비트 수를 나타내는 접두사)
  • #b100101(이진 형식을 나타내는 접두사, Lisp 프로그래밍 언어에서 공통)

말할 때, 이진수는 보통 십진수 숫자와 구별하기 위해 자릿수 단위로 읽힌다. 예를 들어, 2진수 100을 100이 아닌 1 0으로 발음하여 2진수 속성을 명시적으로, 정확성을 목적으로 한다. 이진수 100은 값 4를 나타내기 때문에 숫자를 100(완전히 다른 값, 즉 양을 나타내는 단어)으로 지칭하는 것은 혼란스러울 것이다. 또는 이진수 100을 "4"(정확한 )로 판독할 수 있지만, 이것이 이진수 성격을 명시적으로 만들지는 않는다.

이진수 계산

십진법
번호를 붙이다
이진수
번호를 붙이다
0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
8 1000
9 1001
10 1010
11 1011
12 1100
13 1101
14 1110
15 1111

이진수로 계산하는 것은 다른 숫자 시스템에서 계산하는 것과 비슷하다. 한 자릿수로 시작하여 각 기호를 통해 진행되며, 순서대로 계산한다. 이진법 계수를 검토하기 전에 보다 친숙한 십진법 계수를 참고의 틀로서 간단히 논의하는 것이 유용하다.

십진수 계산

소수점 계산은 0에서 9까지의 10개의 기호를 사용한다. 계산은 종종 첫 번째 자리라고 불리는 가장 작은 자리(가장 오른쪽 자리)의 증분 치환으로 시작한다. 이 위치에 사용할 수 있는 기호가 소진되면 최소 유의 자릿수가 0으로 재설정되고, 다음 중요도(왼쪽 한 위치)의 중요도가 높은 자릿수가 증가(과다 흐름)되며, 낮은 순서의 자릿수 점증적 대체는 재개된다. 이 재설정 및 오버플로 방법은 유의한 각 자릿수에 대해 반복된다. 카운트는 다음과 같이 진행된다.

000, 001, 002, ... 007, 008, 009, (가장 오른쪽 자릿수가 0으로 재설정되고 왼쪽 자릿수가 증가함)
010, 011, 012, ...
...
090, 091, 092, ... 097, 098, 099, (대부분의 오른쪽 두 자리는 0으로 재설정되고 다음 자리는 증가함)
100, 101, 102, ...

이항 계수

이 카운터는 숫자 0부터 31까지의 이진법으로 계산하는 방법을 보여준다.
어떤 카드에 인쇄되는지 추측하는 파티 트릭은 그 숫자의 이진 표현 비트를 사용한다. SVG 파일에서 카드를 클릭하여 전환

2진수 계산은 01 두 기호만 사용할 수 있다는 점을 제외하고 동일한 절차를 따른다. 따라서 한 자릿수가 이진수 1에 도달하면 증분이 0으로 재설정되지만 다음 자릿수의 증가는 왼쪽으로 발생한다.

0000,
0001, (가장 오른쪽 자릿수가 다시 시작되고 다음 자릿수가 증가함)
0010, 0011, (맨 오른쪽 두 자리부터 시작하여 다음 자리까지 증가)
0100, 0101, 0110, 0111, (대부분의 오른쪽 세 자리 숫자가 다시 시작되고 다음 자리 숫자가 증가함)
1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111 ...

2진법에서 각 자릿수는 2의 증가하는 힘을 나타내며, 가장 오른쪽 자릿수는 2를0 나타내고, 다음 자릿수는 2를 나타내고, 그 다음 자릿수는1 2를 나타내고, 그 다음 자릿수는 2를 나타내고, 그 다음 자릿수는2 2를 나타낸다. 이진수의 값은 각 "1"자리 숫자로 대표되는 2의 검정력의 합이다. 예를 들어 이진수 100101은 다음과 같이 십진법으로 변환된다.

1001012 = [ ( 1 ) × 25 ] + [ ( 0 ) × 24 ] + [ ( 0 ) × 23 ] + [ ( 1 ) × 22 ] + [ ( 0 ) × 21 ] + [ ( 1 ) × 20 ]
1001012 = [ 1 × 32 ] + [ 0 × 16 ] + [ 0 × 8 ] + [ 1 × 4 ] + [ 0 × 2 ] + [ 1 × 1 ]
1001012 = 3710

분수

이항 산술의 분수는 분모에서 2가 유일한 주요 요인인 경우에만 종료된다. 그 결과 1/10은 유한한 이항표현이 없다(10은 1차 요인 25를 가진다). 이로 인해 10 × 0.1은 부동 소수점 산술에서 정확히 1과 같지 않게 된다. 예를 들어, 1/3 = .010101...에 대한 이항 식을 해석하려면, 이것은 1/3 = 0 × 2−1 + 1 × 2−2 + 0 × 2 + 1−3 × 2−4 + ...을 의미한다. = 0.3125 + ... 정확한 값은 2의 한정된 역률의 합, 0과 1/3의 이항 표현에서 0과 1을 영원히 찾을 수 없다.

분수 십진법 이진수 분수 근사치
1/1 1 또는 0.999... 1 또는 0.12... 1/2 + 1/4 + 1/8...
1/2 0.5 또는 0.499... 0.1 또는 0.0111... 1/4 + 1/8 + 1/16 . . .
1/3 0.333... 0.010101... 1/4 + 1/16 + 1/64 . . .
1/4 0.25 또는 0.24999... 0.01 또는 0.00111... 1/8 + 1/16 + 1/32 . . .
1/5 0.2나 0.155... 0.00110011... 1/8 + 1/16 + 1/128 . . .
1/6 0.1666... 0.0010101... 1/8 + 1/32 + 1/128 . . .
1/7 0.142857142857... 0.001001... 1/8 + 1/64 + 1/512 . . .
1/8 0.125 또는 0.19999... 0.001 또는 0.000111... 1/16 + 1/32 + 1/64 . . .
1/9 0.111... 0.000111000111... 1/16 + 1/32 + 1/64 . . .
1/10 0.1 또는 0.0999... 0.000110011... 1/16 + 1/32 + 1/256 . . .
1/11 0.090909... 0.00010111010001011101... 1/16 + 1/64 + 1/128 . . .
1/12 0.08333... 0.00010101... 1/16 + 1/64 + 1/256 . . .
1/13 0.076923076923... 0.000100111011000100111011... 1/16 + 1/128 + 1/256 . . .
1/14 0.0714285714285... 0.0001001001... 1/16 + 1/128 + 1/1024 . . .
1/15 0.0666... 0.00010001... 1/16 + 1/256 . . .
1/16 0.0625 또는 0.0624999... 0.0001 또는 0.0000111... 1/32 + 1/64 + 1/128 . . .

이항 산술

2진법의 산술은 다른 숫자 체계에서의 산술과 매우 비슷하다. 2진수에서는 덧셈, 뺄셈, 곱셈, 나눗셈을 할 수 있다.

덧셈

2비트를 합하여 합계와 운반 비트를 생성하는 이진 하프 첨자에 대한 회로 다이어그램

이진법에서 가장 간단한 산술 연산은 덧셈이다. 한 자릿수의 이진수 두 개를 추가하는 것은 운반 형식을 사용하여 비교적 간단하다.

0 + 0 → 0
0 + 1 → 1
1 + 0 → 1
1 + 1 → 0, 1을 운반한다(1 + 1 = 2 = 0 + (1 × 21)).

"1"자리 두 개를 추가하면 숫자 "0"이 생성되는 반면, 1은 다음 열에 추가되어야 한다. 이는 특정 한 자릿수 숫자가 함께 추가될 때 십진수에서 발생하는 것과 유사하며, 결과가 라디스의 값(10)과 같거나 초과될 경우 왼쪽에 있는 자릿수가 증가된다.

5 + 5 → 0, 1을 운반한다(5 + 5 = 10 = 0 + (1 × 101)).
7 + 9 → 6, 1을 운반한다(7 + 9 = 16 = 6 + (1 × 101)).

이것을 운반하는 것으로 알려져 있다. 덧셈의 결과가 자릿수 값을 초과했을 때, 그 초과량을 라디스로 나눈 값(즉, 10/10)을 왼쪽으로 "캐리(carry)"하여 다음 위치 값에 더하는 것이다. 다음 위치는 라디스와 동일한 인자에 의해 더 높은 가중치를 가지기 때문에 이것은 정확하다. 운반은 2진수로 동일한 방식으로 작동한다.

 1 1 1 1 (자릿수) 0 1 1 0 1 + 1 0 1 1 ---------------- = 1 0 0 0 0 = 36 

이 예에서는 011012(1310)과 101112(2310)의 두 숫자를 함께 추가하고 있다. 맨 위 행은 사용된 운반 비트를 보여준다. 맨 오른쪽 열에서 시작하여 1 + 1 = 102. 1은 왼쪽으로 옮겨지고, 0은 가장 오른쪽 열의 맨 아래에 쓰여진다. 오른쪽에서 두 번째 열이 추가된다: 1 + 0 + 1 = 102, 1은 운반되고, 0은 하단에 기록된다. 세 번째 열: 1 + 1 + 1 = 112. 이번에는 1을 들고, 맨 아래 줄에 1을 쓴다. 이렇게 진행하면 1001002(3610)의 최종 답이 나온다.

컴퓨터가 두 개의 숫자를 추가해야 할 때, 어떤 두 비트 x와 y에 대해서도 xor y = (x + y) mod 2라는 규칙이 매우 빠른 계산을 허용한다.

롱 캐리어 방식

많은 이항 추가 문제에 대한 단순화는 롱 캐리어 방법 또는 브루크하우스 이항 추가 방법이다. 이 방법은 일반적으로 숫자 중 하나가 긴 "문자열"을 포함하는 이진법에서 유용하다. 그것은 2진법 하에서, 전적으로 로 구성된 숫자의 "열"이 주어졌을 때, 단순한 전제에 근거한다. n 하나(어디서)n 정수 길이)를 추가하면 숫자 1과 다음 문자열이 뒤따른다. n 0. 그 개념은 논리적으로, 하나의 문자열에 1을 추가하는 십진법에서와 같이 따른다.n 9s는 1번과 그 뒤에 일련의 n 0s:

     이진수 십진수 1 1 1과 마찬가지로 9 9 9 + 1 + 1 -—————————————————————————————————————————————————————————————— - 0 0 0 0 0 0 0 0 0 0. 

이렇게 긴 문자열은 이진법에서 꽤 흔하다. 그 결과, 과도한 운반 작업 없이 간단한 두 단계를 사용하여 큰 이진수를 추가할 수 있다는 것을 알게 된다. 다음 예에서 두 개의 숫자를 합하여, 1 1 1 0 1 1 1 12 0 (95810)과 1 0 0 1 0 0 0 0 0 1 1 12 (69110)로 왼쪽의 전통적인 운반법을 사용하고, 오른쪽의 긴 이동법을 사용한다.

전통적인 운반법 대 1 1 1 1 1 1 1 1 1 (운반 자리수) 1 ← 1 1 ← 이하는 1을 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0을 한 자리 지나도록 운반한다.                   + 1 0 0 0 1 0 0 1 1을 더하고 여기에 추가된 숫자를 --———————————————————————————————————————————————————————————————————————————————————————————————————— = 1 = 1 = 1 = 1 = 1 0 1 0 0 0 0 0 0을 — = 1 

맨 위 행은 사용된 운반 비트를 보여준다. 한 열에서 다음 열로 표준 운반하는 대신, 그 아래 해당하는 위치 값에 "1"이 있는 가장 낮은 순서의 "1"을 추가하고 "1"을 시리즈 종료 후 한 자리 수로 운반할 수 있다. "사용된" 숫자는 이미 추가되었으므로 반드시 구분되어야 한다. 다른 긴 문자열도 마찬가지로 동일한 기법을 사용하여 취소할 수 있다. 그런 다음 남은 숫자를 정상적으로 함께 추가하면 된다. 이 방법으로 진행하면 최종 정답은 1 1 0 0 1 1 0 0 0 02 1 (164910)이다. 소수를 사용한 간단한 예에서, 전통적인 운반 방법은 8개의 운반 작업이 필요했지만, 긴 운반 방법은 2개만 필요했고, 이는 상당한 노력의 감소를 의미한다.

덧셈표

0 1
0 0 1
1 1 10

이진 추가 테이블은 논리 분리 작업의 진실 테이블과 유사하지만 동일하지는 않다 은 1 {\} = 1 + = 1

뺄셈

뺄셈은 거의 동일한 방식으로 작용한다.

0 − 0 → 0
0 - 1 → 1, 차입 1
1 − 0 → 1
1 − 1 → 0

"0" 숫자에서 "1" 숫자를 빼면 "1" 숫자가 나오는 반면, 1은 다음 열에서 빼야 한다. 이것은 차용이라고 알려져 있다. 그 원칙은 운반과 같다. 뺄셈의 결과가 0보다 작을 때, 가능한 한 자릿수의 최소값인 0보다 작을 때, 그 절차는 적자를 왼쪽에서 라디스로 나눈 것(즉, 10/10)으로 "빌려" 다음 위치 값에서 빼는 것이다.

    * * * (열은 차용됨) 1 1 0 1 0 - 1 0 1 1 1 ---------------- = 1 0 1 0 0 1 1 1 1 
  * (열은 차용됨) 1 0 1 1 - 1 0 1 0 1 --------------------------- = 0 1 1 0 0 

양의 숫자를 빼는 것은 같은 절대값음수추가하는 것과 같다. 컴퓨터는 부호화된 숫자 표현을 사용하여 음수를 처리하는데, 가장 일반적으로 두 개의 보완 표기법이다. 그러한 표현은 별도의 "추상" 작업의 필요성을 제거한다. 두 개의 보완 표기법 뺄셈을 사용하면 다음과 같은 공식으로 요약할 수 있다.

A - B = A + B + 1이 아님

곱하기

이진법에서의 곱셈은 십진법과 비슷하다. 두 개의 숫자A 그리고B 부분 제품으로 곱할 수 있다: 의 각 자릿수에 대해B, 그 숫자의 산물.A 새 선에 계산되고 기록되며, 왼쪽 방향으로 이동하여 가장 오른쪽에 있는 선이 다음 위치에 오도록 한다.B 사용된 것. 이 모든 부분 제품의 합계는 최종 결과를 나타낸다.

2진수에는 두 자리만 있으므로 각 부분 곱셈에는 두 개의 가능한 결과만 있다.

  • 자릿수가 다음인 경우B 0, 부분 제품도 0
  • 자릿수가 다음인 경우B 1이며, 부분 제품은 다음과 같다.A

예를 들어 이진수 1011과 1010은 다음과 같이 곱한다.

           1 0 1 1   (A)          × 1 0 1 0   (B) -------- 0 0 0 ← 에서 가장 오른쪽 '0'에 해당한다.B    + 1 0 1 ← 다음 '하나'에 해당B    +   0 0 0 0    + 1 0 1 1    ---------------    = 1 1 0 1 1 1 0 

이진수는 또한 이진수 다음에 비트로 곱할 수 있다.

               1 0 1 . 1 0 1     A (소수 5.625) × 1 1 0 . 0 1B (소수 6.25) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------B      + 0 0 . 0 0 0 ← 의 '0'에 해당함B      + 0 0 0 0 0 + 1 0 0 + 1 1 0 . 1 ------------------------------------------------------------------------------------------------------------------------------------- 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 (십진수 35.125) 

Booth의 곱셈 알고리즘도 참조하십시오.

곱셈표

0 1
0 0 0
1 0 1

2진수 곱셈표는 논리적 접속사 작업 진실 표와 동일하다

나누기

이항에서의 긴 분할은 다시 그것의 십진법과 유사하다.

아래 예에서 구분자는 1012, 즉 소수점 5인 반면, 배당금은 110112, 즉 소수점 27이다. 이 절차는 십진법 장분할과 같다.여기서 101은2 배당금의 처음 3자리 110에2 한 번 들어가므로 상단 줄에 "1"이 적혀 있다. 이 결과는 분할자에 곱하고, 배당금의 처음 세 자리수에서 빼며, 다음 자리수(1")를 포함시켜 새로운 세 자리수 순서를 얻는다.

              1         ___________ 1 0 1   ) 1 1 0 1 1         − 1 0 1           -----           0 0 1 

그런 다음 새로운 순서에 따라 절차를 반복하여 배당금의 숫자가 소진될 때까지 계속한다.

             1 0 1        ___________ 1 0 1  ) 1 1 0 1 1        − 1 0 1          -----              1 1 1          −   1 0 1              -----              0 1 0 

따라서 11011을2 101로2 나눈 은 상단 라인에 표시된 것처럼 101이고2, 나머지 부분은 하단 라인에 표시된 대로 10이다2. 이는 소수점 이하에서 27을 5로 나누면 5가 되고, 나머지는 2가 된다는 사실에 해당한다.

긴 나눗셈과는 별개로, 각 반복에서 부분적인 잔차에서 과다하게 감산할 수 있도록 절차를 고안할 수 있어, 체계성은 떨어지지만 결과적으로 보다 유연한 대안적 방법을 도출할 수 있다.

제곱근

이진 제곱근 숫자를 자릿수별로 취하는 과정은 소수 제곱근과 동일하며 여기에 설명된다. 예는 다음과 같다.

             1 0 0 1             ---------            √ 1010001              1             ---------       101     01                 0              --------       1001     100                  0              --------       10001    10001                10001               -------                    0 

비트 연산

이진 기호의 수치 해석과는 직접 관련이 없지만, 비트의 시퀀스는 부울 논리 연산자를 사용하여 조작할 수 있다. 일련의 이진 기호가 이런 식으로 조작되면 비트 연산이라고 부른다. 논리 연산자 AND, OR, XOR는 입력으로 제공된 2개의 이진수로 해당 비트에 대해 수행될 수 있다. 논리 NOT 연산은 입력으로 제공된 단일 이진수로 개별 비트에 대해 수행될 수 있다. 때로는 그러한 연산을 산술적 쇼트컷으로 사용할 수 있으며, 다른 계산상의 이점도 있을 수 있다. 예를 들어, 이진수의 왼쪽 산술적 변화는 2의 a (양, 적분) 검정력에 의한 곱셈의 등가물이다.

다른 숫자 시스템으로 변환 및 변환

십진수에서 이진수까지

(357)10을 이진 표기법으로 변환하면 (101100101)

base-10 정수에서 base-2(이진수) 등가로 변환하기 위해 숫자를 2로 나눈다. 나머지는 가장 중요하지 않은 부분이다. 지수를 다시 2로 나누고, 나머지 지수를 다음으로 가장 덜 중요한 비트가 된다. 이 과정은 1의 지수에 도달할 때까지 반복된다. 잔존가 순서(최종 1의 몫 포함)는 이진수 값을 형성하는데, 각 잔존가치는 2로 나눌 때 0 또는 1이어야 하기 때문이다. 예를 들어 (357)은 (10101100101)2.[33]로 표현된다.

이진수에서 십진수까지

base-2에서 base-10으로의 변환은 단순히 앞의 알고리즘을 뒤집는다. 이진수의 비트는 가장 유의한(가장 왼쪽) 비트부터 차례로 사용된다. 값 0부터 시작하여 이전 값을 두 배로 하고, 다음 비트를 추가하여 다음 값을 산출한다. 이것은 다단 테이블로 정리할 수 있다. 예를 들어 10010101101을2 십진수로 변환하려면:

선행가치 × 2 + 다음 비트 다음 값
0 × 2 + 1 = 1
1 × 2 + 0 = 2
2 × 2 + 0 = 4
4 × 2 + 1 = 9
9 × 2 + 0 = 18
18 × 2 + 1 = 37
37 × 2 + 0 = 74
74 × 2 + 1 = 149
149 × 2 + 1 = 299
299 × 2 + 0 = 598
598 × 2 + 1 = 1197

결과는 119710. 첫 번째 이전 값 0은 단순히 초기 소수 값이다. 이 방법은 호너 계획을 적용한 것이다.

이진수 1 0 0 1 0 1 0 1 1 0 1
십진법 1×210 + 0×29 + 0×28 + 1×27 + 0×26 + 1×25 + 0×24 + 1×23 + 1×22 + 0×21 + 1×20 = 1197

숫자의 분수 부분은 유사한 방법으로 변환된다. 그들은 다시 2배 혹은 절반으로 이동하면서 동등함을 바탕으로 한다.

In a fractional binary number such as 0.110101101012, the first digit is , the second , etc. 따라서 소수점 뒤에 1이 1이면 숫자는 적어도 이고 그 반대의 경우도 마찬가지다. 그 숫자의 2배는 적어도 1이다. 이는 알고리즘을 암시한다: 변환할 숫자를 반복해서 두 배로 늘리고, 결과가 적어도 1인지 여부를 기록한 다음 정수 부분을 버린다.

예를 들어 ( ) 10는) 2진수로 다음과 같다.

변환 중 결과
0.
0.0
0.01
0.010
0.0101

따라서 반복 소수점 0.3... 이항 분율 0.01...과 동일하다.

또는10 예를 들어 0.1(이진수)은 다음과 같다.

변환 중 결과
0.1 0.
0.1 × 2 = 0.2 < 1 0.0
0.2 × 2 = 0.4 < 1 0.00
0.4 × 2 = 0.8 < 1 0.000
0.8 × 2 = 1.6 ≥ 1 0.0001
0.6 × 2 = 1.2 ≥ 1 0.00011
0.2 × 2 = 0.4 < 1 0.000110
0.4 × 2 = 0.8 < 1 0.0001100
0.8 × 2 = 1.6 ≥ 1 0.00011001
0.6 × 2 = 1.2 ≥ 1 0.000110011
0.2 × 2 = 0.4 < 1 0.0001100110

이것은 또한 반복적인 이진분수 0.00011... 소수점 분수를 종료하면 이진수에서 반복적인 확장이 있을 수 있다는 것은 놀라운 일로 다가올 수 있다. 0.1 + … + 0.1 (추가 10)이 부동 소수점 산술에서 1과 다르다는 것을 발견하면 많은 이들이 놀라는 것도 이 때문이다. 사실, 종단 확장이 있는 유일한 이진 분수는 정수를 2의 힘으로 나눈 형태인데, 1/10은 그렇지 않다.

최종 변환은 이진수에서 십진수 분수로 이루어진다. 분수를 반복할 때 유일한 난이도는 발생하지만, 그렇지 않으면 분수를 정수로 전환하여 위와 같이 변환한 다음 소수점 이하에서 2의 적절한 힘으로 나누는 방법이다. 예를 들면 다음과 같다.

종종 16진수에 익숙한 사람에게 더 빠른 이진법에서 10진법으로 변환하는 또 다른 방법은 간접적으로 변환하는 것이다. 먼저 ( {\ x})를 (16진수로 {\ 로 변환한 다음 (x {\ x로 변환하는 것이다.

매우 큰 숫자의 경우, 이러한 간단한 방법은 하나의 피연산자가 매우 큰 경우 많은 수의 승수나 분할을 수행하기 때문에 비효율적이다. 단순한 분할-분할 알고리즘은 무증상적으로 더 효과적이다: 2진수를 지정하면 10으로k 나누는데, 여기서 k를 선택하면 그 몫이 대략 나머지와 같게 된다. 그리고 나서 이 두 조각은 각각 십진법으로 변환되고 두 조각은 결합된다. 소수점 이하를 부여하면 같은 크기의 두 조각으로 나눌 수 있으며, 각 조각은 이진수로 변환되며, 첫 번째 변환된 조각에 10을k 곱하고 두 번째 변환된 조각에 추가된다. 여기서 k는 변환 전의 두 번째 소수점 이하 조각의 소수 자릿수다.

16진법

0육각의 = 0dec = 0oct 0 0 0 0
1육각의 = 1dec = 1oct 0 0 0 1
2육각의 = 2dec = 2oct 0 0 1 0
3육각의 = 3dec = 3oct 0 0 1 1
4육각의 = 4dec = 4oct 0 1 0 0
5육각의 = 5dec = 5oct 0 1 0 1
6육각의 = 6dec = 6oct 0 1 1 0
7육각의 = 7dec = 7oct 0 1 1 1
8육각의 = 8dec = 10oct 1 0 0 0
9육각의 = 9dec = 11oct 1 0 0 1
A육각의 = 10dec = 12oct 1 0 1 0
B육각의 = 11dec = 13oct 1 0 1 1
C육각의 = 12dec = 14oct 1 1 0 0
D육각의 = 13dec = 15oct 1 1 0 1
E육각의 = 14dec = 16oct 1 1 1 0
F육각의 = 15dec = 17oct 1 1 1 1

이진수는 16진수로 보다 쉽게 변환될 수 있다. 16진법계의 라디ix(16)는 2진법(2)의 라디스의 힘이기 때문이다. 구체적으로는 16 = 2이므로4, 인접한 표와 같이 한 자릿수의 16진수를 나타내기 위해서는 네 자릿수의 이진수가 필요하다.

16진수를 이진수로 변환하려면 해당 이진수를 대체하십시오.

3A16 = 0011 10102
E716 = 1110 01112

이진수를 16진수로 변환하려면 4비트의 그룹으로 나누십시오. 비트 수가 4의 배수가 아닌 경우 왼쪽에 추가 0비트(패딩이라고 함)만 삽입하십시오. 예를 들면 다음과 같다.

10100102 = 0101 0010 패딩으로 그룹화 = 5216
110111012 = 1101 1101 그룹 = DD16

16진수 숫자를 십진수 등가로 변환하려면 각 16진수 자릿수의 십진수 등가에 16의 해당 검정력을 곱하고 결과 값을 추가하십시오.

C0E716 = (12 × 163) + (0 × 162) + (14 × 161) + (7 × 160) = (12 × 4096) + (0 × 256) + (14 × 16) + (7 × 1) = 49,38310

팔분의 일

8진법은 8진법으로도 쉽게 전환되는데, 8진법은 2진법(이름, 2진법3)의 힘인 8진법을 사용하기 때문에 8진법은 8진법을 나타낸다. 8진수와 2진수 사이의 대응은 위의 표에서 처음 8자리 16진수에 대한 것과 동일하다. 이진 000은 8진수 0과 같고, 이진 111은 8진수 7과 같다.

팔분의 일 이진수
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111

8진수에서 2진수로 변환은 16진수에서와 같은 방식으로 진행된다.

658 = 110 1012
178 = 001 1112

2진수에서 8진수까지:

1011002 = 101 1002 그룹 = 548
100112 = 010 0112 패딩으로 그룹화 = 238

그리고 8진수에서 10진수까지:

658 = (6 × 81) + (5 × 80) = (6 × 8) + (5 × 1) = 5310
1278 = (1 × 82) + (2 × 81) + (7 × 80) = (1 × 64) + (2 × 8) + (7 × 1) = 8710

실제 숫자를 나타냄

비정수자는 음전력을 사용하여 나타낼 수 있는데, 음전력은 라딕스 포인트(소수계에서는 소수점이라 함)를 이용하여 다른 자리로부터 상쇄된다. 예를 들어 이진수 11.01은2 다음을 의미한다.

1 × 21 (1 × 2 = 2) 더하기
1 × 20 (1 × 1 = 1) 더하기
0 × 2−1 (0 × 12 = 0) 더하기
1 × 2−2 (1 × 14 = 0.25)

총 3.25 소수점.

모든 dynadic 합리수 ^{a은 종료 이진수를 가지며, 2진수 표시는 라딕스 포인트 이후의 항 수가 유한하다. 다른 이성적인 숫자들은 2진법으로 표현되지만, 종료되는 대신, 유한한 자릿수 순서가 무한정 반복되면서 재발한다. 예를 들어.

어떤 이성적인 것의 이진 표현이 종료되거나 반복되고 있는 현상은 다른 라딕스 기반의 숫자 시스템에서도 발생한다. 예를 들어, 설명을 소수점 단위로 보십시오. 또 다른 유사점은 0.11111...이라는 사실에 의존하는 모든 종료표현에 대한 대체표현의 존재다. 기하 급수 2−1 + 2−2 + 2 + ...의−3 합이다. 즉 1.

종료되거나 반복되지 않는 이진수는 비합리적인 숫자를 나타낸다. 예를 들어.

  • 0.10100100010000100000100... 패턴은 있지만, 고정 길이의 반복 패턴이 아니므로 숫자가 비이성적임
  • 1.0110101000001001111001100110011111110... }의 이진 표현이고 2의 제곱근이며, 또 다른 비합리적이다. 그것은 알아볼 수 있는 무늬가 없다.

참고 항목

참조

  1. ^ Robson, Eleanor; Stedall, Jacqueline, eds. (2009), "Myth No. 2: the Horus eye fractions", The Oxford Handbook of the History of Mathematics, Oxford University Press, p. 790, ISBN 9780199213122
  2. ^ Chrisomalis, Stephen (2010), Numerical Notation: A Comparative History, Cambridge University Press, pp. 42–43, ISBN 9780521878180.
  3. ^ Rudman, Peter Strom (2007), How Mathematics Happened: The First 50,000 Years, Prometheus Books, pp. 135–136, ISBN 9781615921768.
  4. ^ a b Edward Hacker; Steve Moore; Lorraine Patsco (2002). I Ching: An Annotated Bibliography. Routledge. p. 13. ISBN 978-0-415-93969-0.
  5. ^ a b Redmond & Hon (2014), 페이지 227.
  6. ^ a b Jonathan Shectman (2003). Groundbreaking Scientific Experiments, Inventions, and Discoveries of the 18th Century. Greenwood Publishing. p. 29. ISBN 978-0-313-32015-6.
  7. ^ Zhonglian, Shi; Wenzhao, Li; Poser, Hans (2000). Leibniz' Binary System and Shao Yong's "Xiantian Tu in :Das Neueste über China: G.W. Leibnizens Novissima Sinica von 1697 : Internationales Symposium, Berlin 4. bis 7. Oktober 1997. Stuttgart: Franz Steiner Verlag. pp. 165–170. ISBN 3515074481.
  8. ^ Sanchez, Julio; Canton, Maria P. (2007). Microcontroller programming: the microchip PIC. Boca Raton, Florida: CRC Press. p. 37. ISBN 978-0-8493-7189-9.
  9. ^ W. S. Anglin과 J. Lambek, 탈레스의 유산, 스프링거, 1995, ISBN 0-387-94544-X
  10. ^ a b 고대 인도의 이진수
  11. ^ Wayback Machine에 보관된 시인과 드러머를 위한 수학(pdf, 145KB)
  12. ^ Stakhov, Alexey; Olsen, Scott Anthony (2009). The mathematics of harmony: from Euclid to contemporary mathematics and computer science. ISBN 978-981-277-582-5.
  13. ^ B. 판 노오텐, "인도 고대의 바이너리 숫자", 인도학 저널, 제21권, 1993, 페이지 31-50
  14. ^ Bender, Andrea; Beller, Sieghard (16 December 2013). "Mangarevan invention of binary steps for easier calculation". Proceedings of the National Academy of Sciences. 111 (4): 1322–1327. doi:10.1073/pnas.1309160110. PMC 3910603. PMID 24344278.
  15. ^ (Bonner 2007 [1] 웨이백 머신보관2014년 4월 3일 Fidora 등 [2] 참조)
  16. ^ a b Bacon, Francis (1605). "The Advancement of Learning". London. pp. Chapter 1.
  17. ^ Shirley, John W. (1951). "Binary numeration before Leibniz". American Journal of Physics. 19 (8): 452–454. Bibcode:1951AmJPh..19..452S. doi:10.1119/1.1933042.
  18. ^ Ineichen, R. (2008). "Leibniz, Caramuel, Harriot und das Dualsystem" (PDF). Mitteilungen der deutschen Mathematiker-Vereinigung (in German). 16 (1): 12–15. doi:10.1515/dmvm-2008-0009. S2CID 179000299.
  19. ^ a b 레이브니즈 G, 탐사대 라릿메티크 비나이어, 다이메탈리스체 슈리프텐, 에드. C. 게르하르트, 1879년 베를린, vol.7, p.223; 영어 번역.[3]
  20. ^ a b c J.E.H. Smith (2008). Leibniz: What Kind of Rationalist?: What Kind of Rationalist?. Springer. p. 415. ISBN 978-1-4020-8668-7.
  21. ^ Aiton, Eric J. (1985). Leibniz: A Biography. Taylor & Francis. pp. 245–8. ISBN 0-85274-470-6.
  22. ^ Yuen-Ting Lai (1998). Leibniz, Mysticism and Religion. Springer. pp. 149–150. ISBN 978-0-7923-5223-5.
  23. ^ Boole, George (2009) [1854]. An Investigation of the Laws of Thought on Which are Founded the Mathematical Theories of Logic and Probabilities (Macmillan, Dover Publications, reprinted with corrections [1958] ed.). New York: Cambridge University Press. ISBN 978-1-108-00153-3.
  24. ^ Shannon, Claude Elwood (1940). A symbolic analysis of relay and switching circuits. Cambridge: Massachusetts Institute of Technology. hdl:1721.1/11173.
  25. ^ "National Inventors Hall of Fame – George R. Stibitz". 20 August 2008. Archived from the original on 9 July 2010. Retrieved 5 July 2010.
  26. ^ "George Stibitz : Bio". Math & Computer Science Department, Denison University. 30 April 2004. Retrieved 5 July 2010.
  27. ^ "Pioneers – The people and ideas that made a difference – George Stibitz (1904–1995)". Kerry Redshaw. 20 February 2006. Retrieved 5 July 2010.
  28. ^ "George Robert Stibitz – Obituary". Computer History Association of California. 6 February 1995. Retrieved 5 July 2010.
  29. ^ Rojas, R. (1997). "Konrad Zuse's Legacy: The Architecture of the Z1 and Z3" (PDF). IEEE Annals of the History of Computing. 19 (2): 5–15. doi:10.1109/85.586067.
  30. ^ "Introducing binary - Revision 1 - GCSE Computer Science". BBC. Retrieved 26 June 2019.
  31. ^ a b Küveler, Gerd; Schwoch, Dietrich (2013) [1996]. Arbeitsbuch Informatik - eine praxisorientierte Einführung in die Datenverarbeitung mit Projektaufgabe (in German). Vieweg-Verlag, reprint: Springer-Verlag. doi:10.1007/978-3-322-92907-5. ISBN 978-3-528-04952-2. 9783322929075.
  32. ^ a b Küveler, Gerd; Schwoch, Dietrich (4 October 2007). Informatik für Ingenieure und Naturwissenschaftler: PC- und Mikrocomputertechnik, Rechnernetze (in German). 2 (5 ed.). Vieweg, reprint: Springer-Verlag. ISBN 978-3834891914. 9783834891914.
  33. ^ "Base System". Retrieved 31 August 2016.

추가 읽기

  • Sanchez, Julio; Canton, Maria P. (2007). Microcontroller programming: the microchip PIC. Boca Raton, FL: CRC Press. p. 37. ISBN 978-0-8493-7189-9.
  • Redmond, Geoffrey; Hon, Tze-Ki (2014). Teaching the I Ching. Oxford University Press. ISBN 978-0-19-976681-9.

외부 링크