8 진수 (기본 8)는 무엇에 사용됩니까?


11

Java는 기본 2, 8, 10 및 16에서 숫자 리터럴을 작성하는 방법을 제공합니다.

base 8 이 포함되어 있는지 궁금합니다 int x = 0123;.

16 진수에서 1 바이트의 용량이 FF + 1 등 이라는 사실과 비슷한 것이있을 것이라고 생각 합니다.


7
귀하의 질문은 "8 진수는 무엇입니까?"라고 생각합니다.
GetMeARemoteJob

그렇습니다, 이것이 제가 그 질문에 말한 방법입니다. 모든 흥미로운 답변에 감사드립니다. 나는 그것이 역사적 근거가 있다고 생각했지만, 손가락을 대는 데 필요한 경험이 없었습니다.
jokinjo

답변:


16

이 답변은 "왜 기초 8의 숫자를 쓰는 것이 유용합니까?"라는 최초의 질문에 대한 것입니다.

그것은 C 등을 아는 사람들에게 언어를 친숙하게 만드는 것이 었습니다. 그렇다면 질문은 그 언어를 지원하는 이유입니다!

18 비트 와이드 워드 를 사용하는 아키텍처 (다양한 PDP)가 있었고 다른 비트는 36 비트 워드를 사용했기 때문에 숫자가 3 비트 인 리터럴이 유용합니다.

실질적으로는 단지 내가 자바 코드에서 사용 보았다 배치 예를 들면, 유닉스 스타일의 권한을 지정하기위한 0777, 0644

( 이 질문에 대한 찬성 투표는 " 이 질문에 대한 찬성 투표 "입니다.)


오, 좋은 지적, 나는 리눅스에서 파일 권한을 잊었다! 사용 가능한 비트의 최소 사용 ... 8 진법이 계산서에 맞습니다.
sarlacii

1
@sarlacii "최소 사용"은 그것과 아무 관련이 없습니다. int 리터럴의 "8 진"-은 소스 코드에만 존재합니다. 숫자는 사용자, 그룹 및 기타에 직접 대응하기 때문에 8 진 리터럴로 표시된 권한을 잡는 것이 더 쉽습니다.
Andy Turner

60 비트 단어와 6 비트 문자 집합이있는 메인 프레임 컴퓨터에서 첫 프로그래밍을했습니다. 주소는 18 비트였습니다. 물론 우리는 8 진법을 사용했습니다. 내가 16 진수를 처음 만났을 때 숫자로 된 글자를 보는 것은 매우 독특했습니다.
Ole VV

@Andy 나는 여전히 그것을 최소한의 사용으로 생각합니다 ... 비트 길이의 선택은 코드와 관련이 없습니다. 또한 리소스에 의해 제한됩니다. 예. 8 비트를 사용하여 각 권한을 인코딩하고 사용하지 않는 비트를 마스킹하거나 3 바이트를 요구하거나 최소 3 비트를 사용한 다음 8 진수를 인코딩하여 1과 반 바이트 만 사용하도록 선택할 수 있습니다 (4 번째 사용) 끈적 끈적한). 그러나 그렇습니다. 비트 레벨에 들어가면 임의의 값입니다. 어쨌든 결합 된 8 진수 값을 16 진수로 읽을 수 있습니다.
sarlacii

7

"8 진 숫자는 예전처럼 일반적이지 않습니다. 그러나 8 진수는 한 단어의 비트 수가 3의 배수 일 때 사용됩니다. 또한 UNIX 시스템에서 파일 권한을 나타내는 단축 기호로 사용됩니다. UTF8 번호 등 "

보낸 사람 : https://www.tutorialspoint.com/octal-number-system


3
실제로 "단어의 비트 수"는 아닙니다. 16 비트 미니 컴퓨터에서 비트 0/1과 5 8 진수의 형태로 사용되기 때문입니다. 더 나은 설명은 다음과 같습니다. 단어 의 필드 크기 가 8 비트의 배수 일 때 사용됩니다 . 동일한 컴퓨터에는 8 개의 레지스터가 있습니다. 따라서 명령어에 지정된 레지스터에는 레지스터의 이름을 지정할 수있는 3 비트 필드가 있고 레지스터 대 레지스터 명령어에는 이러한 3 비트 필드가 2 개 있습니다. 동일한 컴퓨터들은 종종 3 비트 opcode, 또는 "탈출"(예를 들어, 0111) 내지 6 비트 opcode를 갖는 3 비트 opcode를 가졌다 ; etc.
davidbak

4

컴퓨터의 역사 (과학). 베이스 10이 맞지 않는 비트의 증가를 나타내려면 3 비트의 경우 8 = 2 3 , 4 비트의 경우 16 = 2 4 가 더 적합합니다.

기수 8의 장점은 모든 자릿수가 실제로 0 ~ 7 인 반면, 기수 16의 "숫자"는 0-9A-F입니다.

8 비트의 바이트베이스 16 (16 진)이 더 적합하며 이깁니다. Unix base 8 8 진수의 경우, 여전히 rwx사용자, 그룹 및 기타의 비트 (읽기, 쓰기, 실행)에 사용됩니다. 따라서 0666 또는 0777과 같은 8 진수입니다.

16 진수는 어디에나 있으며 오늘날 컴퓨터의 워드 크기가 여러 바이트이기 때문에 가장 흔하지는 않습니다. 8 비트 byte가 표준이되었다는 것은 또 다른 어려운 관련 이야기입니다 (2 3 비트 및 어드레싱).


0

"8 진수 (base 8)는 어떤 용도로 사용됩니까?"

8 진법의 일반적인 사용법

  • 이진의 약어로 : 컴퓨팅 머신 (예 : UNIVAC 1050, PDP-8, ICL 1900 등)의 경우, 옥탈은 단어 크기를 3으로 나눌 수 있기 때문에 이진의 약어로 사용되었습니다 (각 8 진 숫자는 3 개의 이진을 나타냄) 자릿수). 따라서 2, 4, 8 또는 12 자리 숫자는 전체 기계어를 간결하게 표시 할 수 있습니다. 또한 이진수 디스플레이가 사용하기에는 너무 복잡하고, 십진수 디스플레이는 근사를 변환하기 위해 복잡한 하드웨어가 필요하고, 더 많은 숫자를 표시하는 데 필요한 16 진 디스플레이가있는 운전자 콘솔에 Nixie 튜브, 7 세그먼트 디스플레이 및 계산기를 사용할 수 있도록하여 비용을 절감했습니다. .

  • 16 비트, 32 비트 또는 62 비트 단어 표현 :모든 최신 컴퓨팅 플랫폼은 16 비트, 32 비트 또는 64 비트 워드를 사용하며 8 비트 바이트로 더 나뉩니다. 이러한 시스템에서는 바이트 당 3 개의 8 진수가 필요하며, 가장 중요한 8 진수는 2 개의 2 진 숫자 (있는 경우 다음 유효 바이트의 1 비트)를 나타냅니다. 16 비트 단어의 8 진수 표현에는 6 자리가 필요하지만 가장 중요한 8 진수는 1 비트 (0 또는 1) 만 나타냅니다. 이 표현은 가장 중요한 바이트를 4 진수로 번져서 쉽게 읽을 수있는 방법을 제공하지 않습니다. 따라서 16 진수는 2 개의 16 진수가 정확히 1 바이트를 지정하므로 오늘날 프로그래밍 언어에서 더 일반적으로 사용됩니다. 2의 거듭 제곱 크기를 가진 일부 플랫폼에는 여전히 8 진법으로 표시되는 경우 이해하기 쉬운 명령어 하위 단어가 있습니다. 여기에는 PDP-11 및 Motorola 68000 제품군이 포함됩니다. 최신 유비쿼터스 x86 아키텍처도이 범주에 속하지만이 플랫폼에서는 8 진수가 거의 사용되지 않습니다.

  • 인코딩 설명 : 현대 x86 아키텍처에서 opcode의 이진 인코딩의 특정 속성은 8 진수로 표시 될 때 더 쉽게 알 수 있습니다. 예를 들어 ModRM 바이트는 2, 3 및 3 비트의 필드로 나뉘어져 있으므로 8 진수는 설명에 유용 할 수 있습니다. 이 인코딩.

  • 계산 및 파일 액세스 권한 : Octal은 16 진수 대신 컴퓨팅에 사용되는 경우가 많으며, 아마도 가장 일반적으로 Unix 시스템의 파일 권한 (chmod에 대한 액세스 권한)과 함께 사용됩니다. 16 진수 시스템은 16 진수이므로 0-9 이상의 6 개의 추가 기호가 필요합니다.

  • 디지털 디스플레이 : 8 진수는 표현에 사용되는 심볼 수가 적기 때문에 디지털 컨텐츠를 화면에 표시하는 데에도 사용됩니다.

  • 바이트 문자열의 그래픽 표현 : 일부 프로그래밍 언어 (C, Perl, Postscript 등)는 \ nnn으로 이스케이프 된 8 진수로 텍스트 / 그래픽 표현을 갖습니다. 8 진 표현은 6 비트 그룹을 인코딩하는 ASCII가 아닌 UTF-8의 비 ASCII 바이트와 시작 바이트가 8 진수 값 \ 3nn이고 연속 바이트가 8 진수 값 \ 2nn 인 경우 특히 유용합니다.

  • 초기 부동 소수점 산술 : Octal은 Ferranti Atlas (1962), Burroughs B5500 (1964), Burroughs B5700 (1971), Burroughs B6700 (1971) 및 Burroughs B7700 (1972) 컴퓨터의 부동 소수점에도 사용되었습니다.

  • 트랜스 폰더에서 : 항공기는 지상 레이더에 의해 조사 될 때 4 자리 숫자로 표현 된 코드를 전송합니다. 이 코드는 레이더 화면에서 다른 항공기를 구별하는 데 사용됩니다.

추가 자료 : https://en.wikipedia.org/wiki/Octal


1
나는 Wikipedia 항목을 읽는 것을 즐겼습니다. 특히 손가락 사이의 공백을 사용하여 계산하는 것에 관한 약간의 내용. 그러나 대부분이 기사는 내 질문의 자극이라고 할 수 있습니다. 내가 생각했듯이, 현재 컴퓨터 아키텍처에서 사용되는 단어 크기의 불가분성은 8 진수 표현을 유용하게 만들지 않으며 "16, 32, 64 비트 단어…"라고 인용 한 단락 중 하나는 전혀 명확하지 않습니다. “가장 큰 바이트가 4 개의 8 진수로 번지는”방법과“두 단어 크기를 가진 일부 플랫폼에는 여전히 명령어 하위 단어가 있습니다…”
jokinjo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.