문제

나는 내 코드에서 8진수를 사용한 적이 없으며 이를 사용한 코드를 본 적도 없습니다(16진수 및 비트 변환에도 불구하고).

저는 1994년쯤에 C/C++로 프로그래밍을 시작했는데, 아직 너무 어려서 그런 것 아닐까요?이전 코드에서는 8진수를 사용합니까?C에는 앞에 0을 추가하여 이에 대한 지원이 포함되어 있지만 이러한 기본 8 숫자 리터럴을 사용하는 코드는 어디에 있습니까?

도움이 되었습니까?

해결책

나는 최근에 3비트 필드에 액세스하는 네트워크 프로토콜 코드를 작성해야 했습니다.이를 디버깅할 때 Octal이 유용합니다.

효과를 위해서, 이것의 3비트 필드가 무엇인지 말해 줄 수 있습니까?

0x492492

반면에 동일한 숫자를 8진수로 표시하면 다음과 같습니다.

022222222

이제 마지막으로 바이너리로(3개의 그룹으로):

010 010 010 010 010 010 010 010

다른 팁

요즘 내가 8진수 리터럴을 접하는 유일한 곳은 Linux에서 파일에 대한 권한 비트를 처리할 때입니다. 일반적으로 3개의 8진수로 표시되며, 여기서 각 숫자는 각각 파일 소유자, 그룹 및 기타 사용자에 대한 권한을 나타냅니다.

예를 들어0755(대부분의 명령줄 도구에서는 755)는 파일 소유자가 전체 권한(읽기, 쓰기, 실행)을 갖고 그룹과 다른 사용자가 읽기 및 실행 권한만 가짐을 의미합니다.

이러한 비트를 8진수로 표현하면 어떤 권한이 설정되어 있는지 더 쉽게 파악할 수 있습니다.0755가 무엇을 의미하는지 한눈에 알 수 있지만 493이나 0x1ed는 그렇지 않습니다.

에서 위키피디아

Octal이 원래 컴퓨팅에 널리 사용되었을 때 IBM 메인 프레임과 같은 시스템은 24 비트 (또는 36 비트) 단어를 사용했습니다.8 자리 (또는 12 자리)가 전체 기계 단어 (3 개의 이진 자릿수를 덮는 각 옥탈 숫자)를 간결하게 표시 할 수 있기 때문에 Octal은 이들 기계에 대한 이진의 이상적인 약어였습니다.또한 닉시 튜브, 7 개의 세그먼트 디스플레이 및 계산기를 연산자 콘솔에 사용할 수 있도록하여 비용을 절감합니다.바이너리 디스플레이가 사용하기에는 너무 복잡한 경우, 소수 디스플레이는 라드를 변환하기 위해 복잡한 하드웨어가 필요했으며 16 진수 디스플레이는 글자를 표시하는 데 필요했습니다.

그러나 모든 최신 컴퓨팅 플랫폼은 16, 32 또는 64 비트 단어를 사용하며 8 비트는 바이트를 구성합니다.이러한 시스템에서는 3 개의 옥탈 숫자가 필요하며, 가장 중요한 옥탈 숫자는 두 개의 이진 숫자만을 나타냅니다 (및 시리즈에서 동일한 옥탈 숫자는 다음 바이트에서 하나의 이진 숫자를 나타냅니다).따라서 16 진수 숫자는 4 개의 이진 숫자를 포함하고 모든 최신 컴퓨팅 플랫폼에는 4 개의 기계 단어가 있기 때문에 16 진수는 오늘날 프로그래밍 언어에서 더 일반적으로 사용됩니다.두 단어 크기의 전원 크기를 가진 일부 플랫폼에는 여전히 8 월에 표시되면 더 쉽게 이해되는 지침 서브 워드가 있습니다.여기에는 PDP-11이 포함됩니다.현대의 유비쿼터스 X86 아키텍처는이 범주에 속하지만이 플랫폼에는 거의 사용되지 않습니다.

-아담

내 코드에서 Octal 번호를 사용한 적이 없으며 사용한 코드를 발견 한 적이 없습니다.

아마 그럴 겁니다.표준에 따르면 0으로 시작하는 숫자 리터럴은 8진수입니다.여기에는 사소하게 다음이 포함됩니다. 0.문자 그대로의 0을 사용하거나 볼 때마다 이는 8진수였습니다.이상하지만 사실이다.:-)

상업용 항공은 유서 깊은 Arinc 429 버스 표준에서 8진수 "레이블"(기본적으로 메시지 유형 ID)을 사용합니다.따라서 항공전자 애플리케이션용 코드를 작성할 때 8진수로 레이블 값을 지정할 수 있다는 것은 좋은 일입니다...

나는 또한 항공기 응답기에 사용되는 8진수를 본 적이 있습니다.모드-3a 트랜스폰더 코드는 모든 사람이 4개의 8진수로 처리하는 12비트 숫자입니다.조금 더 자세한 정보가 있습니다 위키피디아.나는 그것이 일반적으로 컴퓨터와 관련이 없다는 것을 알고 있지만 FAA도 컴퓨터를 사용합니다 :).

그것은 유용합니다 chmod 그리고 mkdir 기능은 Unix에서 작동하지만 그 외에는 다른 일반적인 용도가 생각나지 않습니다.

나는 다음을 통해 Octal과 접촉하게 되었습니다. PDP-11, 분명히 C 언어도 마찬가지였습니다 :)

tar 파일은 정보를 8진 정수 값 문자열로 저장합니다.

언어의 탄생으로 거슬러 올라가며 수많은 프로그램에 존재하는 표준을 수정할 이유가 없습니다.나는 여전히 Octal 값으로 ASCII 캐릭터를 기억하고 A의 16 진수를 생각해 내기 위해 생각해야하지만 101은 101입니다.숫자 0은 060입니다...^C는 003입니다...

즉, 나는 종종 8진수 표현을 사용한다.

이제 정말 광산을 구부리고 싶다면 PDP-10의 단어 형식을 살펴보세요...

60년대 후반과 70년대부터 8진수 주소 지정과 함께 24비트 단어를 사용하도록 배열된 오래된 프로세스 제어 시스템(Honeywell H4400, H45000 등)이 여전히 많이 있습니다.한 예로 미국에서 마지막 원자력 발전소가 건설된 시기를 생각해 보십시오.

이러한 산업 시스템을 교체하는 것은 매우 중요한 작업이므로 운이 좋게도 이러한 시스템이 멸종되기 전에 야생에서 이를 만날 수 있을 만큼 운이 좋으며 멋진 사용자 정의 부동 소수점 형식에 경외감을 느낄 수도 있습니다!

PDP-8 프로그래밍을 배운 사람이라면 누구나 마음속에 8진수에 대한 애착을 갖고 있을 것입니다.워드 크기는 12비트이고 각각 ​​3비트씩 4개의 그룹으로 나누어졌으므로 -1은 7777 8진수였습니다.이 체계는 16비트 단어를 포함하지만 여전히 다양한 항목에 8진수 표현을 사용하는 PDP-11에서 영속되었으며, 따라서 *NIX 파일 권한 체계가 오늘날까지 유지되고 있습니다.

Octal은 최초의 디스플레이 하드웨어(7세그먼트 디스플레이)에서 가장 유용했습니다.이러한 원래 디스플레이에는 나중에 사용할 수 있는 디코더가 없었습니다.

따라서 디지털 레지스터 출력은 8개 기호만 표시할 수 있는 사용 가능한 디스플레이에 맞게 그룹화되었습니다.0,1,2 3,4,5,6,7 .

또한 최초의 CRT 디스플레이 튜브는 래스터 스캔 디스플레이였으며 가장 간단한 문자 기호 생성기는 7세그먼트 디스플레이와 동일했습니다.

동기를 부여하는 운전자는 언제나 그렇듯이 가능한 가장 저렴한 디스플레이였습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top