마이너스 베이스

Negative base

의 기수(또는 의 기수)를 사용하여 비표준 위치 숫자 시스템을 구성할 수 있습니다.다른 자리값 시스템과 마찬가지로 각 위치는 시스템 기저의 적절한 검정력의 배수를 갖습니다. 그러나 이 기저값은 음수입니다. 즉, 기저값 b는 일부 자연수 r(r 2 2)에 대해 -r과 같습니다.

음수 기반 시스템은 표준 자리수 시스템과 동일한 숫자를 모두 수용할 수 있지만 양수 및 음수 모두 마이너스 기호(또는 컴퓨터 표현에서는 부호 비트)를 사용하지 않고 표현됩니다. 이러한 장점은 산술 연산의 복잡성 증가로 상쇄됩니다.일반적으로 음의 기호에 의해 포함되는 정보를 저장해야 하기 때문에 음의 베이스 번호가 양의 베이스 등가보다 한 자리 길어지는 경우가 많습니다.

음의 기저 위치 숫자 시스템의 일반적인 이름은 해당 양의 기저 시스템의 이름에 의 접두사를 붙임으로써 형성된다. 예를 들어, 의 십진수(base -10)는 10진수(base 10), 의 2진수(base -2)는 2진수(base 2), 의 3진수(base -3)는 3진수(base 3), 의 4진수(base 4)에 해당한다.4)[1][2]

b가 -10인 음의 16진법에서의 표현 12243이 무엇을 의미하는지 생각해 봅시다.

배수의
(-10)4 = 10,000 (-10)3 = -1,000 (-10)2 = 100 (-10)1 = -10 (-10)0 = 1
1 2 2 4 3

표현 12,243−10(음수 표기법)은 10진수 표기법에서는 8,196에10 해당합니다. 왜냐하면 10,000 + (-2,000) + 200 + (-40) + 3 = 8,196이기 때문입니다.

발언

반면, -810,163은 10진수로 9−10,977이라고 쓰여질 것이다.

역사

음의 수치 베이스는 1885년 Giornale di Matematiche di Bataglini[3]발표된 논문으로 Vittorio Grünwald에 의해 처음 고려되었다.Grünwald는 덧셈, 뺄셈, 곱셈, 나눗셈, 루트 추출, 나눗셈 테스트 및 기수 변환을 수행하기 위한 알고리즘을 제공했습니다.1936년 A[4]. J. 켐프너에 의해 부정적인 기초가 언급되었고 즈지스와프 폴락과 A에 의해 더 자세히 연구되었다.1957년 [5]바쿨리츠.

Negabinary는 Z의 아이디어를 바탕으로 1957-59년에 제작된 초기 폴란드 컴퓨터 BINEG( UMC)에 구현되었습니다.바르샤바 [6]수학 연구소의 폴락과 A. 라자르키에비치.그 후로는 도입이 드물었습니다.

표기법 및 사용방법

밑수를 -r로 나타내면 모든 정수 a는 다음과 같이 고유하게 쓸 수 있습니다.

여기서 각 숫자k d는 0 ~ r - 1의 정수이고 선행 숫자n d는 0보다 큽니다(n = 0제외).다음으로 a의 base -r 확장이 문자열nn−1 dd...dd10 지정됩니다.

따라서 음의 베이스 시스템은 기수는 양이지만 자릿수는 부분적으로 음의 범위에서 취해지는 평형 삼진법과 같은 부호 있는 자릿수 표현과 비교될 수 있다.(아래 표에서 값 -1은 단일 문자 T로 표기되어 있습니다.)

일부 숫자는 base -r에서 base r과 같은 표현을 가지고 있습니다.예를 들어, 100 ~109 의 숫자는 10 진수와 음의 16 진수로 같은 표현을 가지고 있습니다.유사하게,

2진수에서는 10001로, 2진수에서는 10001로 표시됩니다.

다수의 양의 기저와 대응하는 음의 기저에서 확장이 있는 몇 가지 숫자는 다음과 같습니다.

십진수 마이너스 십진수 바이너리 마이너스 삼진수 마이너스 밸런스 삼항식 네가 평형 삼진법 제4기 네거너리
−15 25 −1111 110001 −120 1220 T110 11T0 −33 1301
−5 15 −101 1111 −12 21 T11 TT1 −11 23
−4 16 −100 1100 −11 22 TT 1T −10 10
−3 17 −11 1101 −10 10 T0 10 −3 11
−2 18 −10 10 −2 11 T1 11 −2 12
−1 19 −1 11 −1 12 T T −1 13
0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1
2 2 10 110 2 2 1T TT 2 2
3 3 11 111 10 120 10 T0 3 3
4 4 100 100 11 121 11 T1 10 130
5 5 101 101 12 122 1TT 11T 11 131
6 6 110 11010 20 110 1T0 110 12 132
7 7 111 11011 21 111 1T1 111 13 133
8 8 1000 11000 22 112 10T 10T 20 120
9 9 1001 11001 100 100 100 100 21 121
10 190 1010 11110 101 101 101 101 22 122
11 191 1011 11111 102 102 11T 1TT 23 123
12 192 1100 11100 110 220 110 1T0 30 110
13 193 1101 11101 111 221 111 1T1 31 111
14 194 1110 10010 112 222 1TT TT1T 32 112
15 195 1111 10011 120 210 1TT0 TT10 33 113
16 196 10000 10000 121 211 1TT1 TT11 100 100
17 197 10001 10001 122 212 1T0T TT0T 101 101
18 198 10010 10110 200 200 1T10 TT0 102 102

음수 평형 삼진수를 제외하고 음수 정수의 기저 -r 확장은 짝수 자리수를 가지며, 음수가 아닌 정수의 기저 -r 확장은 홀수 자리수를 가집니다.

계산

숫자의 베이스 -r 확장을 -r로 반복하여 {1, - 음이 아닌 잔차를 기록하고 마지막부터 연결하면 알 수 있습니다.a / bc이고 나머지 d가 있으면 bc + d = a이므로 d = a - bc라는 점에 유의하십시오.올바른 변환에 도달하려면 d가 음이 아닌 최소가 되도록 c 을 선택해야 합니다.다음 예의 네 번째 줄에서는

를 선택해야 합니다( a n 4{ ~\ = { } ~ 4 { r- }).

예를 들어 10진수 146을 음수로 변환하려면 다음 절차를 수행합니다.

나머지 부분을 뒤로 읽으면 146: 21102의10–3 음수 표현을 얻을 수 있습니다.

증명: ((2 · ( - 3) + 1) · (-3) + 1) · (-3) + 0) · (-3) + 2 = 14610

대부분의 프로그래밍 언어에서는 음수를 음수로 나눈 결과(정수 산술)가 0으로 반올림되고 일반적으로 음의 나머지가 남습니다.이 경우 a = (-r)c + d = (-r)c + d - r + r = (-r) (c + 1) + (d + r)가 됩니다.d < r, (d + r)는 양의 나머지이기 때문입니다.따라서 이러한 경우 올바른 결과를 얻기 위해 위의 알고리즘의 컴퓨터 구현은 각각 1과 r을 몫과 나머지에 더해야 합니다.

구현 코드 예시

부정적으로

C#
정적인 스트링 ToNegabinary(인트 가치) {  스트링 결과 = 스트링.;   하는 동안에 (가치 != 0)  {   인트 남은 것 = 가치 % -2;   가치 = 가치 / -2;    한다면 (남은 것 < > 0)   {    남은 것 += 2;    가치 += 1;   }    결과 = 남은 것.ToString(ToString)() + 결과;  }   돌아가다 결과; } 
C++
자동 음수(인트 가치) {     표준::비트셋< >크기(인트) * CHAR_BIT > 결과;     표준::size_t 비트 위치 = 0;      하는 동안에 (가치 != 0)     {         컨스턴트 자동 div_result(결과) = 표준::나누다(가치, -2);          한다면 (div_result(결과).기억하다 < > 0)             가치 = div_result(결과).견적서 + 1;         또 다른             가치 = div_result(결과).견적서;          결과.세트(비트 위치, div_result(결과).기억하다 != 0);          ++비트 위치;     }      돌아가다 결과; } 

네거티브로

C#
정적인 스트링 마이너스(인트 가치) {  스트링 결과 = 스트링.;   하는 동안에 (가치 != 0)  {   인트 남은 것 = 가치 % -3;   가치 = 가치 / -3;    한다면 (남은 것 < > 0)   {    남은 것 += 3;    가치 += 1;   }    결과 = 남은 것.ToString(ToString)() + 결과;  }   돌아가다 결과; } 
Visual Basic.그물
사적인 공유했습니다. 기능. ToNegaternary(가치 ~하듯이 정수) ~하듯이 스트링  어둡다 결과 ~하듯이 스트링 = 스트링.   하는 동안에 가치 << 고객명 >>님 0   어둡다 남은 것 ~하듯이 정수 = 가치 모드 -3   가치 /= -3    한다면 남은 것 < > 0 그리고나서    남은 것 += 3    가치 += 1   끝. 한다면    결과 = 남은 것.ToString(ToString)() & 결과  끝. 하는 동안에   돌아가다 결과 끝. 기능. 
파이썬
방어하다 마이너스(i: 인트) -> 스트레이트:     10진수부터 마이너스까지."""     한다면 i == 0:         숫자 = ["0"]     또 다른:         숫자 = []         하는 동안에 i != 0:             i, 남은 것 = divmod를 실행.(i, -3)             한다면 남은 것 < > 0:                 i, 남은 것 = i + 1, 남은 것 + 3             숫자.추가하다(스트레이트(남은 것))     돌아가다 "".합류하다(숫자[::-1]) 
>>>마이너스(1000) '2212001' 
일반적인 리스프
(삭제하다 마이너스 (i)   (한다면 (제로 i)       "0"       (허락하다 ((숫자 "")             (기억하다 0))         (고리 하는 동안에 (것은 아니다. (제로 i)) 하다           (예후             (다중값 집합 (i 기억하다) (잘라내다 i -3))             (언제 (마이너스 기억하다)               (인시프 i)               (인시프 기억하다 3))             (설정 숫자 (연결하다 '문자열 (스트링에 기입하다 기억하다) 숫자))))         숫자))) 

모든 마이너스 베이스에 대해서

자바
일반의 스트링 마이너스 베이스(인트 정수, 인트 기초) {     스트링 결과 = "";     인트 번호 = 정수;     하는 동안에 (번호 != 0) {         인트 i = 번호 % 기초;         번호 /= 기초;         한다면 (i < > 0) {             i += 수학.복근(기초);             번호++;         }         결과 = i + 결과;     }     돌아가다 결과; } 
자동 리스프

[-10-2] 간격:

(삭제하다 부정기 (숫자 바즈 / 파다 rst)   ; NUM은 임의의 숫자입니다.BAZ는 [-10, -2] 간격의 임의의 숫자입니다.   ;;   ;; NUM 및 BAZ가 플로트일 경우 정수로 잘립니다(예: 14.25).   ; ;는 14, -123456789.87에서 -123456789 등으로 잘립니다).   (한다면 (그리고. (넘버p 숫자)            (넘버p 바즈)            (<=> (고치다 바즈) -2)            (> (고치다 바즈) -11))       (예후         (설정 바즈 (흘러가다 (고치다 바즈))               숫자 (흘러가다 (고치다 숫자))               파다 (한다면 (= 숫자 0) "0" ""))         (하는 동안에 (/= 숫자 0)                (설정 rst (- 숫자 (* 바즈 (설정 숫자 (고치다 (/ 숫자 바즈))))))                (한다면 (마이너스 rst)                    (설정 숫자 (1+ 숫자)                          rst (- rst 바즈)))                (설정 파다 (스트랫 (이토아 (고치다 rst)) 파다)))         파다)       (예후         (신속한          (견디다            ((그리고. (것은 아니다. (넘버p 숫자))                  (것은 아니다. (넘버p 바즈)))             "\n숫자가 틀리고 음수입니다.")            ((것은 아니다. (넘버p 숫자))             "\n잘못된 번호입니다.")            ((것은 아니다. (넘버p 바즈))             "\n잘못했습니다.")            (t             "\nNegabase는 [-10-2] 간격 내에 있어야 합니다.")))         (프린터)))) 
PHP

정수에서 음수로 변환:

기능. 네거티브 베이스로($no, 기준액) {     $140 = 배열();     기준액 = 삽입(기준액);     하는 동안에 ($no != 0) {         $140_아니요 = $no;         $no = 삽입($140_아니요 / 기준액);         $140 = ($140_아니요 % 기준액);          한다면 ($140 < > 0) {             $140 += 복근(기준액);             $no++;         }          어레이_unshift($140, $140);     }      돌아가다 $140; } 
Visual Basic.그물
기능. 네거티브 베이스로(번호 ~하듯이 정수 , 기초 ~하듯이 정수) ~하듯이 시스템..컬렉션.포괄적인.목록.( 정수)      어둡다 숫자 ~하듯이 신규 시스템..컬렉션.포괄적인.목록.( 정수)     하는 동안에 번호 << 고객명 >>님 0         어둡다 남은 것 ~하듯이 정수= 번호 모드 기초         번호 = 컴퓨터(번호 / 기초)           한다면 남은 것 < > 0 그리고나서             남은 것 += 시스템..수학.복근(기초)             번호+=1         끝. 한다면           숫자.삽입(0, 남은 것)     끝. 하는 동안에       돌아가다 숫자 끝. 기능. 

숏컷 계산

다음 알고리즘에서는 다음과 같이 가정합니다.

  1. 입력은 비트스트링으로 사용할 수 있으며 ( +2; { 11의 숫자)로 코딩됩니다(오늘날의 디지털 컴퓨터 대부분과 동일).
  2. (오늘날의 디지털 컴퓨터의 대부분과 같이) 이러한 비트스트링에서 작동하는 추가(+) 및 xor(^) 연산이 있습니다.
  3. 출력 디짓의 D({D})는 표준입니다. , D{ , b - 1} { D = \ { 0 , b - 1\ } ( b { - , - { \ \ { - , 4\} ) ,
  4. 출력은 같은 비트 문자열 형식으로 코드화되지만 플레이스의 의미는 다릅니다.

부정적으로

negabinary(기본값 -2; { , { \ { , \ }) conversable neg neg convers ( ( ( ( ( ( ( ( ( ( ( ( ( ( (ation ( ( ( ( ((C 실장)로 변환할 수 있습니다.

서명되어 있지 않다 인트 니가 바이너리(서명되어 있지 않다 인트 가치) // 표준 바이너리 입력 {  서명되어 있지 않다 인트 슈로펠2 = 0xAAAAAAAA; // = 2/3*((2*2)^16-1) = ...1010  돌아가다 (가치 + 슈로펠2) ^ 슈로펠2; // eExclusive OR  // 부호 없는 int를 요소의 문자열로 해석하는 결과 {0,1}(비트) } 

D 때문에.Librik (슈지크)비트 단위 XOR 부분은 원래 Schroppel(1972)[7]에 기인합니다.

동일한 바로 가기 계산을 위한 JavaScript 포트:

기능. 니가 바이너리(번호) {     변화하다 슈로펠2 = 0xAAAAAAAA;     // NegaBinary 문자열로 변환     돌아가다 ( ( 번호 + 슈로펠2 ) ^ 슈로펠2 ).문자열(2); } 

네거너리

negaaternary(기본값 -4,{1, , 3의 숫자로 변환하면({style 1, 2, 3 다음과 같은 단축키(C 실장)를 사용할 수 있습니다.

서명되어 있지 않다 인트 4진수(서명되어 있지 않다 인트 가치) // 표준 바이너리 입력 {  서명되어 있지 않다 인트 슈로펠4 = 0xCCCCCCCC; // = 4/5*((2*4)^8-1) = ...11001100 = ...3030  돌아가다 (가치 + 슈로펠4) ^ 슈로펠4; // eExclusive OR  // 부호 없는 int를 요소의 문자열로 해석하는 결과 {0,1,2,3}(비트 단위) } 

동일한 바로 가기 계산을 위한 JavaScript 포트:

기능. 4진수(번호) {     변화하다 슈로펠4 = 0xCCCCCCCC;     // NegaQuarary 문자열로 변환     돌아가다 ( ( 번호 + 슈로펠4 ) ^ 슈로펠4 ).문자열(4); } 

산술 연산

다음은 음수에 대한 산술 연산에 대해 설명합니다. 더 큰 기준의 계산도 비슷합니다.

추가

음의 숫자를 추가하면 최하위 비트부터 시작하여 비트 단위로 진행됩니다.각 부가 비트로부터의 비트는 이전 비트(LSB에서는 0)로부터의 (밸런스된) 삼진법으로 합계됩니다.이 합계를 출력 비트로 분해하여 표에 나타나듯이 다음 반복 동안 반송됩니다.

산출량 댓글
조금 운반하다
−2 010−2 0 1 01−2 -2는 감산 중에만 발생합니다.
−1 011−2 1 1 01−2
0 000−2. 0 0 00−2.
1 001−2 1 0 00−2.
2 110−2 0 −1 11개−2
3 111−2 1 −1 11개−2 3은 덧셈 중에만 발생합니다.

예를 들어, 이 표의 두 번째 -1 = 1 + 1 × -2라는 사실을 표현하고, 다섯 번째 행은 2 = 0 + -1 × -2; 입니다.

예를 들어, 10101−2(1 + 4 + 16 + 64 = 85)과−2 1110100(4 + 16 - 32 + 64 = 52)을 더하려면 , 다음의 순서를 실행합니다.

반송: 1 - 1 - 1 0 0 0 첫 번째 추가: 1 0 1 0 0 0 0 1 두 번째 추가: 1 1 1 1 1 1 0 0 + ------------------------------- 번호: 1 - 1 2 3 - 1 0 1 비트 (결과): 1 1 0 1 - 0 1 0 0 1 0 0 0 0 0 1 0 0 1

따라서 결과는 110011001−2(1 - 8 + 16 - 128 + 256 = 137)입니다.

다른 방법

2개의 마이너스 숫자를 추가하는 동안 캐리어가 생성될 때마다 추가 캐리어가 다음 비트로 전파되어야 합니다.위와 같은 예를 생각해 보세요.

추가 캐리어: 1 1 0 1 0 0 캐리어: 1 0 1 1 0 0 0 1 1 0 0 1 2 추가: 1 1 1 1 0 0 0 + ----------------------------- 응답: 1 0 0 1 0 0 0 0 1

마이너스 풀 가산기

가산기 회로는 음수로 숫자를 추가하도록 설계할 수 있습니다.다음 논리를 사용하여 합계를 계산하고 반송합니다.[8]

음수 증가

음수 증가는 다음 [9]공식을 사용하여 수행할 수 있습니다.

뺄셈

빼려면 두 번째 숫자의 각 비트에 -1을 곱하고 위와 같은 표를 사용하여 숫자를 더합니다.

예를 들어 1101001−2(1 - 8 - 32 + 64 = 25) - 1110100−2(4 + 16 - 32 + 64 = 52)을 계산하려면 , 다음의 순서에 따릅니다.

반송: 0 - 1 1 0 0 0 첫 번째 번호: 1 1 0 0 0 1 두 번째 번호: - 1 - 1 0 0 + --------------------- 번호: 0 1 - 2 - 1 0 1 비트 (결과): 0 1 0 0 1 반송: 0 - 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

따라서 결과는 100101−2(1 + 4 -32 = -27)입니다.

단항 부정 -x는 0 - x에서 2진수 차감한 값으로 계산할 수 있습니다.

곱셈과 나눗셈

왼쪽으로 이동하면 -2가 곱해지고 오른쪽으로 이동하면 -2가 나뉩니다.

곱하려면 일반 10진수 또는 이진수처럼 곱하되 숫자를 추가할 때는 자리올림수를 추가하는 음수 규칙을 사용합니다.

첫 번째 번호: 1 1 1 0 1 1 0 두 번째 번호: 1 0 1 1 1 1 1 × ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------1 1 0 1 0 + --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2 2 2 2 2 0 0 0 0 0 0 0

각 열에 대해 숫자에 자리 매김을 더하고 합계를 -2로 나누면 새 자리 매김과 결과 비트를 나머지 값으로 얻을 수 있습니다.

음수 비교

일반 부호 없는 이진 비교기를 약간 조정하여 음수 값을 비교할 수 있습니다. A B B 숫자를 비교할 때는 두 숫자의 홀수 위치에 있는 각 비트를 반대로 바꿉니다.그런 다음 표준 부호 없는 [10]비교기를 사용하여 A A B B 합니다.

소수

base -r 표현은 물론 기수점 이상으로 전달되어 정수 이외의 숫자를 표현할 수 있다.

양의 기저 시스템과 마찬가지로, 종단 표현은 분모가 기저의 거듭제곱인 분수에 대응하고, 반복 표현은 다른 이성과 대응하며, 같은 이유에서이다.

고유하지 않은 표현

정수와 끝 분수가 고유하지 않은 표현을 갖는 양의 기저 시스템과 달리(예: 10진수 0.999...) = 1) 음의 기저 시스템에서 정수는 하나의 표현만을 갖는다.그러나, 비독특한 표현을 가진 합리성이 존재한다.: - - - { \ { } : =r \ !\ ! 1= - b \ ! \ } 자리수의 경우 가장 큰 자리수와

우리는 가지고 있다.

{0_{b= { T}=

따라서 z Z {\ z } {\z\\mathbb { rmathbb { 모든 r + {에는 두 가지 다른 표현이 추가됩니다.

예를 들어, b - b=- t (\의 경우 다음과 같이 됩니다.

이러한 비고유 표현은 각각 정수 부분 0과 1을 가진 가능한 가장 큰 표현과 가장 작은 표현을 고려하여 그것들이 같다는 것을 주목함으로써 찾을 수 있습니다(실제로 이것은 모든 정수 기반 시스템에서 작동합니다).따라서 독특하게 표현할 수 없는 이성은 형식적인 것이다.

z Z {\ z합니다.

허수 기저

음의 밑수를 사용하면 명시적인 음의 부호 없이 음의 숫자를 표현할 수 있듯이, 허수의 밑수를 사용하면 가우스 정수를 표현할 수 있습니다.도날드 크누스는 1955년[11]4분위수 기저(base 2i)를 제안했다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Knuth는 음수와 음수 모두를 언급하고 있다Knuth, Donald (1998), The Art of Computer Programming, Volume 2 (3rd ed.), pp. 204–205.
  2. ^ 음수 시스템에 대해서는 에서 간단히 설명합니다.
  3. ^ 비토리오 그룬발트Intorno all'aritmetica dei sistemi numerici a base negativa con per lo studio delle analogie col'aritmetica ordaria (데시말레), Giornale di Matematiche di Batglini (1885, 203-221, 367)
  4. ^ 켐프너, A.J.(1936년),"Anormal 시스템 Numeration의", 미국 수학 매월 43(10):610–617, doi:10.2307/2300532, JSTOR 2300532, MR1523792.페이지 610에 대한"긍정적인 숫자 1과 음수 기지를 과정의 약간의 수정이나 숫자 사용의 세트장에 적합한 규제를 사용할 수 있다."을 읽는다 부정적인 토대에 유일한 참조가 각주에서.
  5. ^ 를 클릭합니다Pawlak, Z.; Wakulicz, A. (1957), "Use of expansions with a negative basis in the arithmometer of a digital computer", Bulletin de l'Académie Polonaise des Sciences, Classe III, 5: 233–236.
  6. ^ Marczynski, R. W., "The First Seven Years of Polish Computing" 2011-07-19, IEEE 컴퓨팅 역사 연보, Vol.2, No.1, 1980년 1월
  7. ^ MathWorld Negabinary 링크를 참조하십시오.
  8. ^ Francis, Yu; Suganda, Jutamulia; Shizuhuo, Yin (4 September 2001). Introduction to Information Optics. Academic Press. p. 498. ISBN 9780127748115.
  9. ^ "Archived copy". Retrieved 2016-08-29.{{cite web}}: CS1 maint :url-status (링크)
  10. ^ Murugesan, San (1977). "Negabinary arithmetic circuits using binary arithmetic". IEE Journal on Electronic Circuits and Systems. 1 (2): 77. doi:10.1049/ij-ecs.1977.0005.
  11. ^ D. 크누스컴퓨터 프로그래밍의 기술.제2권 제3판애디슨-웨슬리, 페이지 205, "위치번호 시스템"

추가 정보

외부 링크