왜 8 진수와 16 진수입니까? 컴퓨터는 이진수와 인간 소수를 사용합니다.


16

바이너리 (컴퓨터) 나 소수 (인간)가 아닌 다른베이스를 사용하는 이유는 무엇입니까?

컴퓨터는 결국 이진법으로 표현하고 인간은 십진법 표현을 선호합니다. 왜이 두베이스에 달라 붙지 않습니까?


나는 16 진수 또는 많은 양의 글리프가있는 것을 숫자로 사용할 확실한 이유가 없다고 생각하는 경향이 있습니다. 더구나, 나는 바이너리 rep이 미래의 일반적인 경우에 대한 다른 표기법을 대체 할 수 있다고 생각하는 경향이 있습니다.
Mikhail V

@MikhailV 16 진 표현은 이진 표현보다 훨씬 간결합니다. 나는 그것이 2보다 많은 글리프를 사용하는 꽤 확실한 이유라고 말합니다.
Ben Jones

답변:


19

8 진 (base-8) 및 16 진 (base-16) 숫자는 대부분의 사람이 사용하는 2 진 (base-2) 시스템 컴퓨터와 10 진 (base-10) 시스템 사이의 적절한 절충안입니다.

컴퓨터는 여러 기호가 좋지 않으므로 밑줄 2 (2 개의 기호 만있는 경우)가 적합하지만 긴 문자열, 숫자가 많은 숫자는 문제가되지 않습니다. 인간은 여러 개의 기호를 사용하는 것이 좋지만 더 긴 줄을 기억하는 데는 좋지 않습니다.

8 진과 16 진은 많은 16 진수가 4 개의 이진수 ( )를 나타내며 모든 8 진 숫자가 3 ( 8 = 2 3 ). 16 진수가 바이트와 16/32/64 비트 숫자를 나타내는 데 쉽게 사용할 수 있기 때문에 8 진수보다 승리한다고 생각합니다.16=248=2


8
예를 들어 RGB의 16 진수 값을 고려하십시오. 흰색이 #FFFFFF임을 기억하기 쉽습니다. 흰색이 십진수 16777215임을 기억하기가 더 어렵습니다. # EF439A의 빨간색 구성 요소를 제거 하시겠습니까? # 00439A가 나옵니다. 즉, 처음 두 자리를 0으로 변경하면됩니다. 10 진수로 15663104를 빼야합니다.
jmite

3
정확하게 표현하기 위해 십진수 표기법의 색상은 삼중을 사용하고 흰색은 (255, 255, 255)입니다. 16 진수 값은 항상 2 자리이기 때문에 16 진수 값을 연결합니다. 우리는 0을 사용하여 10 진수로 똑같이 할 수 있으며, 16777215 대신에 255255255가됩니다.
Spidey

@Spidey 정확합니다. 또한 내 뇌는 (127,255,255)와 같은 것을 훨씬 쉽게 파싱 할 수 있으며 잉크 양의 비율을 볼 수 있고 머리에 16 진수로 계산할 필요가 없기 때문에 색상이 어떻게 보일지 추측 할 수도 있습니다.
Mikhail V

13

편의성과 간결함을 위해 사용합니다.

16 진수와 10 월은 바이너리의 압축 된 표현입니다. 16 진수는 특히 압축 된 형태의 메모리 주소에 적합합니다. 모든 8 진수는 3 개의 이진 비트에 직접 매핑되고 모든 16 진수는 4 개의 이진 비트에 매핑됩니다. 이것은 밑 (8 및 16)이 2 ( 2 4 )의 거듭 제곱의 결과입니다 . 예를 들어, 바이너리 01101001 을 16 진 69로 쓰거나 10을 151 로 시작하여 0으로 확장 할 수 있습니다.2240110100169151

따라서 64 비트 메모리 주소가 필요하다고 가정하십시오. 64 개의 이진 비트를 모두 보거나 16 진수로 압축 할 수 있습니다. 주소가 동일하거나 연속적인지 확인하기 위해 몇 개의 주소를 비교할 필요가없는 경우가 종종 있습니다. 64 비트 또는 16 자리를 보시겠습니까?


5
8 진수는 숫자 기호를 추가하지 않는 이점이 있으며 6 비트 문자 (및 12 비트 PDP-8, 18 비트 PDP- 1 [CDC 6x00의 주소 레지스터], 36 비트 PDP-6, CDC 6x00의 경우 60 비트 피연산자 레지스터). 8 진수 문자 / 바이트 및 2의 거듭 제곱으로 이동하면 16 진수가 더 매력적입니다.
Paul A. Clayton

"64 비트 또는 16 자리를 보시겠습니까?" 확실히 나는 그룹화 된 비트들을 볼 것이다. 그러나 "01"표기법이 아니기 때문에 추악하고 눈을 아프게합니다. 그리고 나는 육이 얼마나 많은 눈을 아프게하는지조차 말하지 않습니다.
Mikhail V

@MikhailV : "01"표기법의 의미는 무엇입니까? ""01 "표기법이 아닌 비트를 보겠다고합니다. 그러면 어떤 표기법을 사용할 것입니까? 당신이 16 진수가 당신의 눈을 아프게한다면 16 진수보다 10 진수로 조금 더 연습했을 수도 있다고 생각할 수 없습니다. (실제로 나는 당신의 눈에는 좋지 않은 (솔로) 섹스라고 생각했지만 그것은 또 다른 이야기입니다.)
PJTraill

나는 사용 편의성을 강조하기 때문에 dtech의 현재 가장 인기있는 대답보다 이것을 선호하지만, 짧은 표현뿐만 아니라 다양한 숫자도 16 진수 또는 16 진수로 숫자를 읽을 때 더 쉽게 알 수 있음을 지적했을 것입니다 8 진.
PJTraill

@ PaulA.Clayton : 좋은 점; PDP-11의 또 다른 장점은 단어 (자연 연산 단위)가 16 비트 였지만 대부분의 명령어 코드는 자연스럽게 2 비트 연산과 레지스터 번호 및 주소 모드를 나타내는 4 개의 3 비트 그룹에 속한다는 것입니다. 두 가지 주장 중 여덟 가지 가능성. 내가 가장 좋아하는 것 : 014747 = MOV-(PC),-(PC), 메모리를 스스로 채 웁니다 (허용되는 경우).
PJTraill


2

소개

다른 답변에서 이미 언급했듯이 목적과 제약에 따라 다른 표기법이있을 수 있습니다. 표기법은 실제로 일련의 문자로서의 인코딩이며, 알고리즘 및 데이터 구조 연구에서 우리가 수행하려는 작업에 따라 추상 개념, 목록 또는 집합을 인코딩 할 수있는 많은 방법이 있음을 알고 있습니다 . 이 경우 대부분 알고리즘 편의성입니다.

숫자 표현을 고려할 때도 마찬가지입니다. 컴퓨터 내에서 모든 것은 가장 낮은 수준의 이진이지만 일부 응용 프로그램에는 낯선 표현을 사용할 수 있습니다.

우리는 컴퓨터 밖에서 표현 된 가치의 종류에 관한 인간의 편의에 따라 인간이 이해할 수있는 모든 종류의 표현을 사용합니다. 이진 표현은 종종 너무 길고 구조화되지 않아 쉽게 읽고 쓸 수 없으므로 16 진 또는 8 진이됩니다. 선택은 정보가 이진 단어로 구성되는 방식과 관련이있을 수 있으며, 반드시 숫자를 나타 내기위한 것은 아닙니다.

그러나 숫자 , 즉 숫자의 표현 만을 고려할 때 , 생리학, 습관 및 편리함 이라는 주요 요인 을 이해하기 위해 다른 숫자 표현 시스템을 살펴볼 가치가 있습니다. 편의는 사용의 맥락에 따라 다양성을 만드는 주요 요소입니다.

더 넓은 모습

2

문제의 본문은 컴퓨터에만 국한된 것으로 보이지 않으며, 인간은 몇 가지 다른 해법 시스템을 사용하고 있으며 여전히 사용하고 있습니다. 예를 들어 정수가 아닌 숫자는 말할 것도없고 긴 정수를 처리 할 때와 같이 일부 컴퓨터에서도 사용됩니다 .

첫 번째는 사람들이 단위로 수천 또는 수백만을 셀 때 10의 거듭 제곱이기 때문에 여전히 10 진수로 간주된다는 것입니다. 따라서 8 진수 또는 16 진수가 왜 이진의 변형으로 간주되지 않아야하는지 궁금 할 것입니다. 가능한 이유 중 하나는 숫자를 나타내는 데 사용되는 기호의 수일 수 있습니다 (다른 시스템에서 볼 수 있듯이 논쟁의 여지가있는 문제임).

그런 다음 인간과 관련하여 그들은 기본 5에서 quinary systems 이라고 불리는 여러 시스템을 사용 합니다 . 실제로, 이들 시스템의 대부분은 두 개의 염기를 가지고 있으며, 두 번째는 2 또는 4이며,베이스 5와 교번하여베이스 10 (10 진) 또는베이스 20 (가역)과 동일합니다. 그것이 어디에서 오는지 맞춰보세요 :)

이러한 이중 기저 시스템을 2 차 또는 4 차 5 차 시스템이라고합니다. 순수한 quinary는 거의 사용되지 않습니다.

로마 숫자는 이분법 (bi-quinary system)으로 간주 될 수 있습니다 (이는 산술을 수행하는 방법을 나타냅니다). 중국과 일본의 주판은 양분의 일을 사용합니다. Quadas-quinary는 Mayas에 의해 사용되었습니다.

시스템을 사용하는 이유는 아마도 많을 것입니다. 한 가지 좋은 이유는 그것이 첫 번째 로컬 디자인이었고 사람들이 이제 익숙해 졌기 때문입니다. 예를 들어, 영어를 사용하는 사람들이 왜 거리를 측정하려고 할 때 여전히 매우 이상한 계산 시스템을 사용하는지 궁금 할 것입니다. 번호 매기기가 아니라 여러 단위의 문제라고 주장 할 수는 있지만 매우 약한 말입니다. 숫자는 주로 사물을 측정하는 데 사용됩니다.

시스템을 유지해야하는 다른 이유는 주어진 상황에서 편리하기 때문입니다. 상이한 심볼의 수 또는 주판상의 위치와 충분히 많은 수를 형성하는데 필요한 심볼 발생의 수 사이에 상충 관계가있을 수있다. Base 2는 2 개의 별개의 기호로 작동하지만 많은 표현이있어 재료 표현에 불편할 수 있습니다. Vigesimal base 20에는 20 개의 기호와 사람들이 기억하지 못하는 매우 큰 곱셈표가 필요합니다. 그러나 2 차 또는 4 차 5 차 시스템은 특히 주판을 만드는 데 훨씬 더 관리하기 쉽습니다. 순수한 정수 시스템은 아마도 더 나을 것이지만 생리학 기반 습관과 직관에 위배됩니다. 그리고 우리가 더 잘 알지 못할 때 손가락을 사용하여 계산할 수 있다는 것이 항상 좋습니다.

그러나 이것이 전부는 아닙니다.

매우 오래되고 매우 일반적인 시스템 중 하나는 시간과 각도를 측정하는 데 사용되는 간지 시스템 입니다. 기본 60을 사용하지만 너무 많은 60 기호를 사용하지 않습니다. 따라서 다른 시스템을 사용하여 해당 신볼 (예 : 10 진수 시스템)을 나타냅니다.

원은 60도 각도에 해당하는 6 개 부분으로 나눌 수 있으며, 이는 정삼각형으로 만드는 것이 가장 간단합니다. 그런 다음 각 차수는 60 분의 호이며 각각 60 초로 나뉩니다.

Wikipedia 에 따르면

기원전 3 천년의 고대 수메르 인들로부터 기원을 받았고, 고대 바빌로니아 사람들에게 전해졌으며, 시간, 각도 및 지리적 좌표를 측정하기 위해 여전히 수정 된 형태로 사용됩니다.

기원을 고려할 때 수학이 유아기에 거의 들어 가지 않을 때 꽤 편리한 시스템이었습니다. 60 ° 각도는 쉽게 그릴 수있을뿐만 아니라 60 가지 요소가 많으므로 나머지없이 정수로 여러 방법으로 나눌 수 있습니다.

12×5=60

그러나 바빌로니아 사람들비거시 삼항 체계 와 같이 60 세가 되는 다른 방법들이 있습니다.

왜 우리는 여전히 sexagesimal 시스템을 사용합니까? 나는 우리가 그것에 익숙해 졌다고 생각하며, 변화를 완전히 정당화하기에는 너무 많은 상충되는 문제가있을 수 있습니다.

번호 시스템과 단위 시스템 사이에는 많은 상호 작용이 있다는 점에 주목하는 것이 흥미 롭습니다. 그러나 이는 측정이 숫자의 주요 역할이기 때문에 예상됩니다. 이것은 메모리 크기에 대한 10 진수와 2 진 메트릭 사이의 반대에서 두드러 집니다 .


3
제목에 "16 진수, 8 진수 또는 16 진수가 왜 필요한가?"
Fizz

1
@RespawnedFluff 좋은 말. 그런 다음 내 질문은 질문으로 확장 될 수 있습니다. 나는 다른 답변이 흥미롭지 않다고 말하지 않았습니다. 그러나 더 넓은 시야는 다양한 시스템에 대한 가능한 동기를 더 잘 보여줍니다. 이미 주어진 답변 중 일부를 지원합니다. 기본적으로 동기는 습관과 편리함입니다. 그러나 편의는 상황에 따라 크게 달라집니다. 메모리 크기 이분법은 최근에 만들어졌으며 요점을 보여줍니다.
babou

2
간결함은 미덕입니다.이 질문에는 1000 단어의 글이 필요하지 않으며 대부분 관련이 없습니다. 당신은 또한 질문에 대답하지 못했습니다.
dtech

"사람들이 수천으로 계산할 때, 이것은 10의 거듭 제곱이기 때문에 여전히 십진수로 간주됩니다. 따라서 왜 8 진법 또는 16 진법이 이진법의 변형으로 간주되어서는 안되는지 궁금 할 것입니다. 숫자 (일반적으로 0) 이것은 0-999의 숫자마다 1000 개의 다른 기호를 사용하는 base-1000과 다릅니다.
dtech

1
@dtech 감사합니다. 나는 보통 내 대답 앞에있는 소개 나 요약을 잊어 버렸습니다. 그리고 이것은 다른 답변들에 의해 무시되는 중요한 포인트로 이끌었습니다. 모든 이진 단어가 숫자로 의도 된 것은 아닙니다. 더 넓은 시야를 얻으려고하면 문제를 찾는 데 도움이됩니다.
babou

-1

컴퓨터는 이진수를 이해하고 이진수로 숫자의 가중치는 2의 거듭 제곱이므로 숫자를 나타내는 자릿수가 숫자에 따라 커질 수 있습니다.

예를 들어 십진수 64는 7 비트로 표현할 수 있지만 5000을 나타내려면 13 비트가 필요합니다.

8 진수 및 16 진수 시스템은 2 진수를 나타내는 간단한 방법 입니다.


2
이 답변 어떻게 않습니다 [What advantage is there to using a base different from ten or (a power of) two?]- 또는 어떻게 다른 사람이 해석합니까 Why not stick to [bases 2 and 10]??
greybeard
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.