08. 06.2018

Dmitry Vassiyarov의 블로그.

이진 코드 - 어디에서 어떻게 사용됩니까?

오늘 저는 독자 여러분을 만나서 특히 기쁩니다. 왜냐하면 저는 첫 수업에서 수업에 문자와 숫자를 소개하기 시작하는 교사처럼 느껴지기 때문입니다. 그리고 우리는 디지털 기술의 세계에 살고 있기 때문에 기본이 되는 바이너리 코드가 무엇인지 알려 드리겠습니다.

용어부터 시작하여 이진법이 무엇을 의미하는지 알아보겠습니다. 설명을 위해 "십진법"이라고 하는 일반적인 미적분학으로 돌아가 보겠습니다. 즉, 10자리를 사용하여 다양한 번호로 편리하게 조작하고 적절한 기록을 보관할 수 있습니다.

이 논리에 따라 이진 시스템에서는 두 문자만 사용할 수 있습니다. 우리의 경우 "0"(영)과 "1"일 뿐입니다. 그리고 여기에서 가설적으로 그 자리에 다른 규칙이 있을 수 있다는 점을 경고하고 싶습니다. 그러나 부재(0, 비어 있음)와 신호(1 또는 "지팡이")의 존재를 나타내는 이러한 값이 도움이 될 것입니다. 바이너리 코드의 구조를 더 이해합니다.

바이너리 코드가 필요한 이유는 무엇입니까?

컴퓨터가 출현하기 전에 다양한 자동 시스템이 사용되었으며 작동 원리는 신호 수신을 기반으로합니다. 센서가 트리거되고 회로가 닫히고 특정 장치가 켜집니다. 신호 회로에 전류가 흐르지 않음 - 작동하지 않음. 회로에서 전압의 유무로 표시되는 정보 처리의 진행을 가능하게 한 것은 전자 장치였습니다.

그들의 추가 복잡성은 첫 번째 프로세서의 출현으로 이어졌습니다. 첫 번째 프로세서도 이미 특정 방식으로 번갈아 가며 펄스로 구성된 신호를 처리하고 있었습니다. 이제 소프트웨어 세부 정보로 이동하지 않지만 다음이 중요합니다. 전자 장치는 입력 신호의 주어진 시퀀스를 구별할 수 있는 것으로 나타났습니다. 물론 조건부 조합을 다음과 같이 설명하는 것이 가능합니다. "신호가 있습니다"; "신호 없음"; "신호가 있습니다"; "신호가 있습니다." 표기법을 단순화할 수도 있습니다. "있다"; "아니"; "있다"; "있다".

그러나 단위 "1"로 신호의 존재를 나타내고 0 "0"으로 신호가 없음을 나타내는 것이 훨씬 쉽습니다. 그런 다음 이 모든 대신에 간단하고 간결한 이진 코드인 1011을 사용할 수 있습니다.

물론 프로세서 기술은 훨씬 더 발전했고 이제 칩은 일련의 신호뿐만 아니라 개별 문자로 구성된 특정 명령으로 작성된 전체 프로그램을 인식할 수 있습니다.

그러나 녹음을 위해 신호의 유무에 따라 0과 1로 구성된 동일한 이진 코드가 사용됩니다. 그가 존재하든 존재하지 않든 그것은 중요하지 않습니다. 칩의 경우 이러한 옵션 중 하나는 "비트"(비트는 공식 측정 단위)라고 하는 단일 정보입니다.

일반적으로 문자는 여러 문자 시퀀스로 인코딩될 수 있습니다. 2개의 신호(또는 부재)는 4개의 옵션만 설명할 수 있습니다. 00; 01;10; 11. 이 인코딩 방식을 2비트라고 합니다. 그러나 다음과 같을 수도 있습니다.

  • 4비트(1011 위 단락의 예에서와 같이)를 사용하면 2 ^ 4 = 16개 문자 조합을 작성할 수 있습니다.
  • 8비트(예: 0101 0011; 0111 0001). 한때 2^8 = 256 값을 다루기 때문에 프로그래밍에 가장 큰 관심을 보였습니다. 이것은 모든 십진수, 라틴 알파벳 및 특수 문자를 기술하는 것을 가능하게 했습니다.
  • 16비트(1100 1001 0110 1010) 이상. 그러나 이렇게 긴 길이의 레코드는 이미 현대적이고 더 복잡한 작업을 위한 것입니다. 최신 프로세서는 32비트 및 64비트 아키텍처를 사용합니다.

솔직히 말해서 공식 버전이 하나도 없고 8자 조합이 저장된 정보의 표준 척도가 된 "바이트"가 되었습니다. 이것은 8비트 바이너리 코드로 작성된 단일 문자에도 적용될 수 있습니다. 사랑하는 친구 여러분, 기억하십시오(모르는 사람이 있는 경우).

8비트 = 1바이트.

그래서 받아들였다. 2비트 또는 32비트 값으로 작성된 문자는 명목상 바이트라고도 합니다. 그건 그렇고, 바이너리 코드 덕분에 바이트 단위로 측정된 파일의 양과 정보 전송 및 인터넷 속도(초당 비트 수)를 추정할 수 있습니다.

작동 중인 이진 인코딩

컴퓨터에 대한 정보 기록을 표준화하기 위해 여러 인코딩 시스템이 개발되었으며 그 중 하나는 8비트 기록을 기반으로 하는 ASCII가 널리 보급되었습니다. 그 값은 특별한 방식으로 배포됩니다.

  • 처음 31자는 제어 문자입니다(00000000에서 00011111까지). 서비스 명령, 프린터 또는 화면으로의 출력, 사운드 신호, 텍스트 서식을 제공합니다.
  • 다음 32에서 127(00100000 - 01111111) 라틴 알파벳 및 보조 기호 및 구두점;
  • 나머지, 최대 255번째(10000000 - 11111111) - 대안, 특수 작업 및 국가 알파벳 표시를 위한 테이블의 일부;

그 값의 해석은 표에 나와 있습니다.

"0"과 "1"이 혼란스러운 순서로 있다고 생각하면 큰 착각입니다. 임의의 숫자를 예로 사용하여 패턴을 보여주고 이진 코드로 작성된 숫자를 읽는 방법을 알려 드리겠습니다. 그러나 이를 위해 몇 가지 조건을 수락합니다.

  • 8자 바이트는 오른쪽에서 왼쪽으로 읽습니다.
  • 일반 숫자에서 1, 10, 100의 자릿수를 사용하는 경우 각 비트에 대해 여기서(역순으로 읽기) "2"의 다양한 거듭제곱이 표시됩니다. 256-124-64-32-16-8-4- 2-1;
  • 이제 숫자의 이진 코드(예: 00011011)를 살펴봅니다. 해당 위치에 "1" 신호가 있는 경우 이 비트의 값을 가져와 일반적인 방식으로 합산합니다. 따라서: 0+0+0+32+16+0+2+1 = 51. 이 방법의 정확성은 코드 표를 보면 확인할 수 있습니다.

자, 호기심 많은 친구 여러분, 바이너리 코드가 무엇인지 뿐만 아니라 암호화된 정보를 변환하는 방법도 알고 있습니다.

현대 기술이 이해할 수 있는 언어

물론 프로세서 장치가 이진 코드를 읽는 알고리즘은 훨씬 더 복잡합니다. 그러나 도움을 받으면 원하는 모든 것을 작성할 수 있습니다.

  • 서식 옵션이 있는 텍스트 정보
  • 숫자 및 그와 관련된 모든 작업
  • 그래픽 및 비디오 이미지;
  • 우리의 청각을 초월하는 소리를 포함한 소리;

또한 "프레젠테이션"의 단순성으로 인해 이진 정보를 기록하는 다양한 방법이 가능합니다.

  • 에 의해 자기장 변경 ;
  • 바이너리 코딩의 장점을 보완하는 것은 거리에 관계없이 정보를 전송할 수 있는 거의 무한한 가능성입니다. 우주선 및 인공위성과 함께 사용되는 통신 방법입니다.

    따라서 오늘날 이진법은 우리가 사용하는 대부분의 전자 장치가 이해할 수 있는 언어입니다. 그리고 가장 흥미로운 것은 아직 그에게 다른 대안이 예상되지 않는다는 것입니다.

    제가 제공한 정보가 시작하기에 충분할 것이라고 생각합니다. 그런 다음 그러한 필요가 발생하면 모든 사람이이 주제에 대한 독립적 인 연구를 탐구 할 수 있습니다.

    작별인사를 하고 잠시 휴식을 취한 후 흥미로운 주제로 내 블로그의 새 기사를 준비하겠습니다.

    직접 말씀해 주시면 더 좋을 것 같아요 ;)

    곧 봐요.

    컴퓨터는 사람이 하는 것처럼 단어와 숫자를 이해하지 못합니다. 최신 소프트웨어를 사용하면 최종 사용자가 이를 무시할 수 있지만 가장 낮은 수준에서 컴퓨터는 이진 전기 신호로 작동합니다. 상태가 두 개뿐: 전류가 있거나 전류가 없습니다. 복잡한 데이터를 "이해"하려면 컴퓨터가 이를 바이너리로 인코딩해야 합니다.

    이진법은 컴퓨터가 이해할 수 있는 켜짐 및 꺼짐 상태에 해당하는 1과 0의 두 자리 숫자를 기반으로 합니다. 십진법에 익숙할 것입니다. 0에서 9까지의 10자리 숫자를 사용하고 다음 순서로 이동하여 두 자리 숫자를 형성합니다. 각 순서의 숫자는 이전 숫자의 10배입니다. 이진법은 비슷하며 각 숫자는 이전 숫자의 두 배입니다.

    이진법으로 계산하기

    2진수에서 첫 번째 숫자는 10진수로 1과 같습니다. 두 번째 숫자는 2, 세 번째 숫자는 4, 네 번째 숫자는 8 등 매번 두 배로 증가합니다. 이 모든 값을 더하면 십진수 형식의 숫자가 제공됩니다.

    1111(2진법) = 8 + 4 + 2 + 1 = 15(십진법)

    0에 대한 설명은 4개의 이진 비트에 대해 16개의 가능한 값을 제공합니다. 8비트를 이동하면 256개의 가능한 값을 얻을 수 있습니다. 10진수로 된 4자리는 10,000개의 가능한 값을 제공하기 때문에 이것은 표현하는 데 훨씬 더 많은 공간을 차지합니다. 물론 이진 코드는 더 많은 공간을 차지하지만 컴퓨터는 십진법보다 이진 파일을 훨씬 더 잘 이해합니다. 그리고 논리 처리와 같은 일부 경우에는 바이너리가 십진수보다 낫습니다.

    프로그래밍에 사용되는 또 다른 기본 시스템이 있다고 말해야 합니다. 16진수. 컴퓨터는 16진법으로 작동하지 않지만 프로그래머는 코드를 작성할 때 16진법을 사용하여 사람이 읽을 수 있는 형식으로 이진 주소를 나타냅니다. 이는 16진수의 두 자리 숫자가 전체 바이트를 나타낼 수 있기 때문입니다. 즉, 이진수의 8자리를 대체하기 때문입니다. 16진법 시스템은 숫자 0-9와 A-F 문자를 사용하여 추가 6자리를 얻습니다.

    컴퓨터가 바이너리를 사용하는 이유

    짧은 대답: 하드웨어와 물리 법칙. 컴퓨터의 모든 문자는 전기 신호이며 컴퓨팅 초기에는 전기 신호를 측정하는 것이 훨씬 더 어려웠습니다. 음전하로 표시되는 "켜짐" 상태와 양전하로 표시되는 "꺼짐" 상태만 구별하는 것이 더 합리적입니다.

    "꺼짐"이 양전하로 표시되는 이유를 모르는 사람들에게는 전자가 음전하를 띠고 전자가 많을수록 음전하를 띤 더 많은 전류를 의미하기 때문입니다.

    따라서 초기 방 크기의 컴퓨터가 사용되었습니다. 바이너리그들은 시스템을 구축하기 위해 더 오래되고 더 큰 장비를 사용했지만 동일한 기본 원칙에 따라 작동했습니다. 현대 컴퓨터는 트랜지스터 이진 코드로 계산을 수행합니다.

    다음은 일반적인 트랜지스터의 개략도입니다.

    기본적으로 게이트에 전류가 있으면 소스에서 드레인으로 전류가 흐를 수 있습니다. 이것은 바이너리 키를 형성합니다. 제조업체는 이 트랜지스터를 5나노미터만큼 작게 만들거나 DNA 가닥 2개만큼 작게 만들 수 있습니다. 이것이 현대 프로세서가 작동하는 방식이며, 켜짐 및 꺼짐 상태를 구별하는 문제로 고통받을 수 있습니다(비현실적인 분자 크기로 인해 양자 역학의 기이함).

    왜 바이너리 시스템만

    그래서 당신은 "왜 0과 1만 있지? 왜 다른 번호를 추가하지 않습니까? 이것은 부분적으로는 컴퓨터를 만드는 전통에 기인하지만, 동시에 하나의 숫자를 더 추가하면 "꺼짐" 또는 "켜짐"뿐만 아니라 전류의 상태를 하나 더 강조 표시해야 할 필요가 있음을 의미합니다.

    여기서 문제는 여러 전압 레벨을 사용하려는 경우 이를 사용하여 쉽게 계산을 수행할 수 있는 방법이 필요하며 이를 수행할 수 있는 최신 하드웨어는 이진 계산을 대체할 수 없다는 것입니다. 예를 들어, 소위 트리플 컴퓨터, 1950년대에 개발되었지만 개발은 거기서 멈췄습니다. 삼항 논리 바이너리보다 효율적이지만 바이너리 트랜지스터를 효과적으로 대체할 수 있는 방법이 아직 없거나 적어도 바이너리만큼 작은 트랜지스터는 없습니다.

    삼항 논리를 사용할 수 없는 이유는 트랜지스터가 컴퓨터에 연결되는 방식과 수학적 계산에 사용되는 방식 때문입니다. 트랜지스터는 두 개의 입력에 대한 정보를 수신하고 연산을 수행하고 결과를 하나의 출력으로 반환합니다.

    따라서 이진 수학은 다른 어떤 것보다 컴퓨터에 더 쉽습니다. 이진 논리는 On 및 Off 상태에 해당하는 True 및 False를 사용하여 이진 시스템으로 쉽게 변환됩니다.

    이진 논리에서 실행되는 이진 진리표에는 각 기본 연산에 대해 4개의 가능한 출력이 있습니다. 그러나 삼중 게이트는 3개의 입력을 사용하기 때문에 삼중 진리표는 9개 이상을 가질 것입니다. 이진 시스템에는 16개의 가능한 연산자(2^2^2)가 있지만 삼항 시스템에는 19683(3^3^3)이 있습니다. 트리니티가 더 효율적이기는 하지만 기하급수적으로 더 복잡하기 때문에 스케일링이 문제가 됩니다.

    누가 알아?미래에는 이진 논리가 소형화의 문제에 부딪히면서 삼항 컴퓨터를 아주 잘 볼 수 있을 것입니다. 현재로서는 세계가 바이너리 모드에서 계속 작동할 것입니다.

    이진 번역기는 이진 코드를 읽거나 인쇄할 수 있도록 텍스트로 번역하는 도구입니다. 두 가지 방법을 사용하여 바이너리를 영어로 번역할 수 있습니다. ASCII 및 유니코드.

    이진수 시스템

    이진 디코더 시스템은 숫자 2(기본)를 기반으로 합니다. 2진법으로 0과 1의 두 가지 숫자로만 구성됩니다.

    이진법은 고대 이집트, 중국, 인도에서 다양한 용도로 사용되었지만 현대 세계에서는 전자 및 컴퓨터의 언어가 되었습니다. 전기 신호의 오프(0) 및 온(1) 상태를 감지하는 가장 효율적인 시스템입니다. 또한 컴퓨터에서 데이터를 구성하는 데 사용되는 텍스트에 대한 이진 코드의 기초이기도 합니다. 현재 읽고 있는 디지털 텍스트도 이진수로 구성되어 있습니다. 그러나 우리가 단어의 이진 코드를 사용하여 번역 파일의 이진 코드를 전사했기 때문에 이 텍스트를 읽을 수 있습니다.

    아스키란?

    ASCII는 American Standard Code for Information Interchange의 약자로 전자 통신을 위한 문자 인코딩 표준입니다. 컴퓨터, 통신 장비 및 기타 장치에서 ASCII 코드는 텍스트를 나타냅니다. 많은 추가 문자가 지원되지만 대부분의 최신 문자 인코딩 체계는 ASCII를 기반으로 합니다.

    ASCII는 인코딩 시스템의 전통적인 이름입니다. IANA(Internet Assigned Numbers Authority)는 업데이트된 US-ASCII 이름을 선호합니다. 이 이름은 시스템이 미국에서 개발되었으며 주로 사용되는 인쇄 문자를 기반으로 함을 명확히 합니다. ASCII는 IEEE의 하이라이트 중 하나입니다.

    바이너리를 ASCII로

    원래 영어 알파벳을 기반으로 하는 ASCII는 128개의 지정된 7비트 정수 문자를 인코딩합니다. 숫자 0 ~ 9, 소문자 a ~ z, 대문자 A ~ Z 및 구두점을 포함하여 95개의 코드화된 문자를 인쇄할 수 있습니다. 또한 Teletype 기계에서 생성된 33개의 인쇄 불가능한 제어 코드가 원래 ASCII 사양에 포함되었습니다. 캐리지 리턴, 줄 바꿈 및 탭 코드와 같은 일부는 여전히 일반적으로 사용되지만 이들 중 대부분은 이제 사용되지 않습니다.

    예를 들어, 2진수 1101001 = 16진수 69(i는 9번째 문자) = 10진수 105는 ASCII 소문자 I을 나타냅니다.

    ASCII 사용

    위에서 언급했듯이 ASCII를 사용하여 컴퓨터 텍스트를 사람의 텍스트로 번역할 수 있습니다. 간단히 말해서 바이너리에서 영어로 번역하는 것입니다. 모든 컴퓨터는 바이너리, 0 및 1 시리즈로 메시지를 수신합니다. 그러나 영어와 스페인어가 같은 알파벳을 사용할 수 있지만 많은 유사한 단어에 대해 완전히 다른 단어를 사용할 수 있는 것처럼 컴퓨터에도 자체 언어 버전이 있습니다. ASCII는 모든 컴퓨터가 동일한 언어로 문서와 파일을 교환할 수 있도록 하는 방법으로 사용됩니다.

    ASCII는 설계 과정에서 컴퓨터에 공통 언어가 주어졌기 때문에 중요합니다.

    1963년에 ASCII는 American Telephone & Telegraph TWX(Teletype Writer eXchange) 네트워크용 7비트 텔레프린터 코드로 처음으로 상업적으로 사용되었습니다. TWX는 처음에 이전의 5비트 ITA2를 사용했으며 이는 경쟁업체인 Telex 텔레프린터 시스템에서도 사용되었습니다. Bob Behmer는 이스케이프 시퀀스와 같은 기능을 도입했습니다. Behmer에 따르면 그의 영국 동료인 Hugh McGregor Ross는 "ASCII가 된 코드가 유럽에서 처음으로 Behmer-Ross Code라고 불릴 정도로" 이 작업을 대중화하는 데 도움을 주었다고 합니다. 그의 광범위한 ASCII 작업으로 인해 Boehmer는 "ASCII의 아버지"라고 불립니다.

    2007년 12월 UTF-8 인코딩이 이를 능가할 때까지 ASCII는 World Wide Web에서 가장 일반적인 문자 인코딩이었습니다. UTF-8은 ASCII와 역호환됩니다.

    UTF-8(유니코드)

    UTF-8은 ASCII만큼 압축될 수 있는 문자 인코딩이지만 모든 유니코드 문자도 포함할 수 있습니다(파일 크기가 약간 증가함). UTF는 유니코드 변환 형식입니다. "8"은 8비트 블록을 사용한 문자 표현을 의미합니다. 문자가 나타내야 하는 블록의 수는 1에서 4까지 다양합니다. UTF-8의 정말 좋은 점 중 하나는 null로 끝나는 문자열과 호환된다는 것입니다. 인코딩될 때 어떤 문자도 null(0) 바이트를 갖지 않습니다.

    유니코드와 ISO/IEC 10646 UCS(Universal Character Set)에는 훨씬 더 넓은 범위의 문자가 있으며 다양한 인코딩 형식이 많은 상황에서 ISO/IEC 8859 및 ASCII를 빠르게 대체하기 시작했습니다. ASCII는 128자로 제한되지만 유니코드 및 UCS는 고유한 식별 개념(코드 포인트라고 하는 자연수 사용)과 인코딩(최대 UTF-8, UTF-16 및 UTF-32비트 이진 형식)을 분리하여 더 많은 문자를 지원합니다. ) .

    ASCII와 UTF-8의 차이점

    ASCII는 유니코드 문자 집합(1991)의 처음 128개 문자로 포함되었으므로 두 집합의 7비트 ASCII 문자는 동일한 숫자 코드를 갖습니다. ASCII 문자만 있는 UTF-8 파일은 동일한 문자 시퀀스를 가진 ASCII 파일과 동일하기 때문에 UTF-8은 7비트 ASCII와 호환됩니다. 더 중요한 것은 소프트웨어가 7비트 ASCII 문자만 특수 문자로 인식하고 최상위 비트 세트가 있는 바이트를 수정하지 않기 때문에 순방향 호환성이 보장된다는 점입니다(ISO-8859 -1과 같은 8비트 ASCII 확장을 지원하기 위해 자주 수행됨) 수정되지 않은 UTF-8 데이터를 유지합니다.

    바이너리 번역기 애플리케이션

    이 숫자 체계의 가장 일반적인 용도는 컴퓨터 기술에서 볼 수 있습니다. 결국 모든 컴퓨터 언어와 프로그래밍의 기초는 디지털 코딩에 사용되는 두 자리 숫자 체계입니다.

    이것이 디지털 인코딩 프로세스를 구성하는 것입니다. 데이터를 가져온 다음 제한된 정보 비트로 렌더링합니다. 제한된 정보는 이진 시스템의 0과 1로 구성됩니다. 컴퓨터 화면의 이미지가 이에 대한 예입니다. 이진 문자열은 각 픽셀에 대해 이러한 이미지를 인코딩하는 데 사용됩니다.

    화면이 16비트 코드를 사용하는 경우 각 픽셀에는 0과 1인 비트에 따라 표시할 색상에 대한 지침이 제공됩니다. 결과는 2^16으로 표시되는 65,000개 이상의 색상입니다. 부울 대수학으로 알려진 수학 분야에서 이진수 시스템의 용도를 찾습니다.

    논리와 진리의 가치는 이 수학 영역에 속합니다. 이 응용 프로그램에서 진술은 참인지 거짓인지에 따라 0 또는 1이 할당됩니다. 이 응용 프로그램에 도움이 되는 도구를 찾고 있다면 이진에서 텍스트로, 십진에서 이진으로, 이진에서 십진으로 변환을 시도할 수 있습니다.

    이진수 시스템의 장점

    이진수 시스템은 여러 가지에 유용합니다. 예를 들어, 컴퓨터는 숫자를 추가하기 위해 스위치를 뒤집습니다. 시스템에 이진수를 추가하여 컴퓨터 추가를 권장할 수 있습니다. 현재 이 컴퓨터 번호 시스템을 사용하는 두 가지 주요 이유가 있습니다. 첫째, 안전 범위의 신뢰성을 보장할 수 있습니다. 두 번째로 가장 중요한 것은 필요한 회로를 최소화하는 데 도움이 된다는 것입니다. 이것은 필요한 공간, 에너지 소비 및 비용을 줄입니다.

    이진수로 작성된 이진 메시지를 인코딩하거나 번역할 수 있습니다. 예를 들어,

    (01101001) (01101100011011110111011001100101) (011110010110111101110101)은 디코딩된 메시지이다. 이 숫자를 복사하여 바이너리 번역기에 붙여넣으면 다음 텍스트가 영어로 표시됩니다.

    사랑해요

    그 뜻은

    (01101001) (01101100011011110111011001100101) (011110010110111101110101) = 사랑해

    테이블

    바이너리

    16진수

    단일 디지털 신호는 0과 1의 두 가지 값만 사용할 수 있기 때문에 그다지 유익하지 않습니다. 따라서 많은 양의 정보를 전송, 처리 또는 저장해야 하는 경우 일반적으로 여러 개의 병렬 디지털 신호를 사용합니다. 또한 이러한 모든 신호는 동시에 만 고려되어야하며 각각은 개별적으로 의미가 없습니다. 이러한 경우 이진 코드, 즉 디지털(논리, 이진) 신호로 구성된 코드를 말합니다. 코드에 포함된 각 논리 신호를 비트라고 합니다. 코드에 더 많은 숫자가 포함될수록 이 코드는 더 많은 값을 가질 수 있습니다.

    우리에게 친숙한 숫자의 10진수 코딩, 즉 10진수 코드와 2진 코딩과 달리 코드의 기본은 숫자 2입니다(그림 2.9). 즉, 이진 코드의 코드(각 자릿수)의 각 자릿수는 10개의 값을 가질 수 없습니다(십진 코드: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9). , 하지만 2 - 0과 1만 있습니다. 위치 표기법은 동일하게 유지됩니다. 즉, 가장 어린 비트가 오른쪽에 기록되고 가장 오래된 비트가 왼쪽에 기록됩니다. 그러나 십진법에서 각 다음 숫자의 가중치가 이전 숫자의 가중치보다 10배 크면 이진법(이진 코딩 포함)에서는 두 배입니다. 이진 코드의 각 자릿수는 비트라고 합니다(영어 "Binary Digit" - "2진수").

    쌀. 2.9. 10진수 및 이진 인코딩

    테이블에서. 2.3은 십진법과 이진법에서 처음 20개의 숫자의 대응 관계를 보여줍니다.

    표는 이진 코드의 필요한 비트 수가 십진 코드의 필요한 비트 수보다 훨씬 큼을 보여줍니다. 자릿수가 3인 가능한 최대 수는 10진수로 999이고 2진수로 7(즉, 2진수로 111)입니다. 일반적으로 n비트 이진수는 2n개의 다른 값을 가질 수 있고 n비트 십진수는 10n개의 값을 가질 수 있습니다. 즉, 큰 이진수(10자리 이상)를 쓰는 것은 그다지 편리하지 않습니다.

    표 2.3. 십진법 및 이진법의 숫자 대응
    십진법 바이너리 시스템 십진법 바이너리 시스템

    이진수의 쓰기를 단순화하기 위해 소위 16진법(16진법 인코딩)이 제안되었습니다. 이 경우 모든 2진수는 4자리의 그룹(가장 중요한 것부터 시작)으로 나누어지고 각 그룹은 하나의 문자로 인코딩됩니다. 이러한 각 그룹은 한입 깨물기(또는 한입 깨물기, 테트라드) 및 두 그룹(8비트) - 1바이트. 테이블에서. 그림 2.3은 4비트 이진수가 16개의 다른 값(0에서 15까지)을 가질 수 있음을 보여줍니다. 따라서 16진수 코드에 필요한 문자 수도 16이며, 여기서 코드 이름이 유래합니다. 0에서 9까지의 숫자를 처음 10자로 취한 다음 라틴 알파벳의 첫 대문자 A, B, C, D, E, F를 사용합니다.

    쌀. 2.10. 2진수 및 16진수 표기법

    테이블에서. 2.4는 처음 20개 숫자의 16진법 코딩의 예를 보여줍니다(2진법은 대괄호로 표시됨). 2.10은 2진수를 16진수로 작성하는 예를 보여줍니다. 16진수 인코딩을 나타내기 위해 문자 "h" 또는 "H"(영어 16진수)가 숫자 끝에 사용되는 경우가 있습니다. 예를 들어 A17F h는 16진수 A17F를 나타냅니다. 여기서 A1은 숫자의 상위 바이트이고 7F는 숫자의 하위 바이트입니다. 정수(이 경우에는 2바이트 숫자)가 호출됩니다. 단어.

    표 2.4. 16진법 코딩 시스템
    십진법 16진법 십진법 16진법
    0 (0) 에이(1010)
    1(1) B(1011)
    2 (10) 씨(1100)
    3 (11) 디(1101)
    4 (100) E (1110)
    5 (101) 에프(1111)
    6 (110) 10 (10000)
    7 (111) 11 (10001)
    8 (1000) 12 (10010)
    9 (1001) 13 (10011)

    16진수를 10진수로 변환하려면 최하위(0) 숫자 값에 1, 다음(첫 번째) 숫자 값에 16, 두 번째 숫자 값에 256(16 2) 등을 곱해야 합니다. , 모든 제품을 추가합니다. 예를 들어 숫자 A17F를 사용합니다.

    A17F=F*16 0 + 7*16 1 + 1*16 2 + A*16 3 = 15*1 + 7*16+1*256+10*4096=41343

    그러나 모든 디지털 장비 전문가(디자이너, 운영자, 수리공, 프로그래머 등)는 16진수 및 2진수 시스템을 일반적인 10진수와 마찬가지로 자유롭게 처리하는 방법을 배워야 시스템에서 시스템으로 전송할 필요가 없습니다.

    고려된 코드 외에도 숫자의 소위 2진법 10진 표현도 있습니다. 16진법 코드에서와 같이 2진법 10진법 코드에서 코드의 각 숫자는 4개의 2진법 숫자에 해당하지만 4개의 ​​2진법 숫자의 각 그룹은 16개가 아니라 10개의 값만 가질 수 있으며 기호 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. 즉, 소수점 한 자리는 이진수 네 자리에 해당합니다. 결과적으로, 이진 십진법으로 숫자를 쓰는 것이 일반 십진법으로 쓰는 것과 다르지 않다는 것이 밝혀졌습니다(표 2.6). 그러나 실제로는 각 숫자가 두 개의 값만 가질 수 있는 특수한 이진 코드일 뿐입니다. 0과 1. BCD는 십진수 숫자 표시와 점수판을 구성하는 데 매우 편리합니다.

    표 2.6. 이진 십진법 코딩 시스템
    십진법 이진 십진수 십진법 이진 십진수
    0 (0) 10 (1000)
    1(1) 11 (1001)
    2 (10) 12 (10010)
    3 (11) 13 (10011)
    4 (100) 14 (10100)
    5 (101) 15 (10101)
    6 (110) 16 (10110)
    7 (111) 17 (10111)
    8 (1000) 18 (11000)
    9 (1001) 19 (11001)

    이진 코드에서는 더하기, 빼기, 곱하기, 나누기 등 숫자에 대해 모든 산술 연산을 수행할 수 있습니다.

    예를 들어 두 개의 4비트 이진수를 더하는 경우를 생각해 보십시오. 숫자 0111(십진수 7)과 1011(십진수 11)을 추가해 보겠습니다. 이 숫자를 더하는 것은 십진수 표기법보다 어렵지 않습니다.

    0과 0을 더하면 0이 되고, 1과 0을 더하면 1이 되고, 1과 1을 더하면 0이 되고 다음 비트로의 캐리는 1이 됩니다. 결과는 10010(십진수 18)입니다. 두 개의 n비트 이진수를 더하면 n비트 또는 (n + 1)비트 수를 얻을 수 있습니다.

    빼기는 같은 방식으로 수행됩니다. 숫자 10010(18)에서 숫자 0111(7)을 뺍니다. 최하위 자릿수에 정렬된 숫자를 쓰고 십진법의 경우와 같은 방식으로 뺍니다.

    0에서 0을 빼면 0이 되고, 1에서 0을 빼면 1이 되고, 1에서 1을 빼면 0이 되고, 0에서 1을 빼면 1이 되고, 다음 자리에서 1을 빌리면 됩니다. 결과는 1011(십진수 11)입니다.

    뺄 때 음수를 얻을 수 있으므로 음수의 이진 표현을 사용해야 합니다.

    이진 양수와 이진 음수를 동시에 표현하기 위해 소위 2의 보수 코드가 가장 자주 사용됩니다. 이 코드에서 음수는 같은 크기의 양수에 더하면 0이 되는 숫자로 표현됩니다. 음수를 얻으려면 동일한 양수의 모든 비트를 반대 비트(0에서 1, 1에서 0)로 변경하고 결과에 1을 더해야 합니다.예를 들어 숫자 -5를 작성해 보겠습니다. 이진 코드의 숫자 5는 0101처럼 보입니다. 우리는 비트를 반대 비트로 바꾸고 1: 1011을 추가합니다. 결과를 원래 숫자와 합산합니다: 1011 + 0101 = 0000(5번째 비트로의 전송은 무시합니다).

    2의 보수 코드의 음수는 최상위 숫자 값의 양수와 다릅니다. 최상위 숫자의 하나는 음수를 결정하고 0은 양수를 결정합니다.

    표준 산술 연산 외에도 모듈로 2 덧셈과 같은 일부 특정 연산이 이진수 시스템에서 사용됩니다. 이 연산(A로 표시)은 비트 단위입니다. 여기 비트. 모듈로 2 덧셈 규칙은 , , . 같은 작업을 함수라고 합니다. XOR. 예를 들어, 모듈로 2 두 이진수 0111과 1011을 합해 보겠습니다.

    이진수에 대한 다른 비트 연산에는 AND 함수와 OR 함수가 있습니다. AND 함수는 두 원래 숫자의 해당 비트가 모두 1일 때만 1이 되고, 그렇지 않으면 결과가 -0입니다. OR 함수는 원래 숫자의 해당 비트 중 하나 이상이 1일 때 1이 되고, 그렇지 않으면 결과가 0이 됩니다.

    이 단원에서는 "코딩 정보. 바이너리 코딩. 정보 측정 단위”. 그 동안 사용자는 정보 인코딩, 컴퓨터가 정보를 인식하는 방법, 측정 단위 및 이진 코딩에 대한 아이디어를 얻을 수 있습니다.

    주제:우리 주변의 정보

    수업: 코딩 정보. 바이너리 코딩. 정보 단위

    이 단원에서는 다음 질문을 다룹니다.

    1. 정보 표시 형식의 변경으로 코딩.

    2. 컴퓨터는 어떻게 정보를 인식합니까?

    3. 정보를 어떻게 측정합니까?

    4. 정보 측정 단위.

    코드의 세계에서

    사람들이 정보를 인코딩하는 이유는 무엇입니까?

    1. 다른 사람에게 숨기십시오(레오나르도 다빈치의 미러 암호화, 군사 암호화).

    2. 정보를 짧게(줄여서, 약어, 도로 표지판) 적어둡니다.

    3. 보다 쉬운 처리 및 전송을 위해(모스 부호, 전기 신호로의 번역 - 기계 부호).

    코딩 일부 코드에 의한 정보의 표현입니다.

    코드 정보를 표시하기 위한 기호 시스템입니다.

    정보를 인코딩하는 방법

    1. 그래픽(그림 1 참조)(그림 및 기호 사용).

    쌀. 1. 신호 플래그 시스템(소스)

    2. 숫자(숫자 사용).

    예: 11001111 11100101.

    3. 기호(알파벳 문자 사용).

    예: NKMBM CHGYOU.

    디코딩 - 정보 표시의 원래 형태를 복원하는 작업입니다. 디코딩하려면 코드와 인코딩 규칙을 알아야 합니다.

    인코딩 및 디코딩 수단은 해당 코드 테이블입니다. 예를 들어 다양한 숫자 체계의 대응 - 24 - XXIV, 모든 기호에 대한 알파벳의 대응(그림 2).


    쌀. 2. 암호의 예(출처)

    정보 인코딩 예

    정보 인코딩의 예는 모스 부호입니다(그림 3 참조).

    쌀. 3. 모스 부호()

    모스 부호는 점과 대시(짧은 소리와 긴 소리)의 2자만 사용합니다.

    인코딩 정보의 다른 예는 플래그 알파벳입니다(그림 4 참조).

    쌀. 4. 깃발 알파벳()

    또한 플래그의 알파벳이 그 예입니다(그림 5 참조).

    쌀. 5. 깃발의 ABC()

    코딩의 잘 알려진 예는 음악 알파벳입니다(그림 6 참조).

    쌀. 6. 음악 알파벳()

    다음 문제를 고려하십시오.

    플래그 알파벳 테이블(그림 7 참조)을 사용하여 다음 문제를 해결해야 합니다.

    쌀. 7

    수석 조수 스크랩이 캡틴 브룽겔에게 시험을 통과했습니다. 다음 텍스트를 읽도록 도와주세요(그림 8 참조).

    우리 주변에는 주로 두 가지 신호가 있습니다. 예를 들면 다음과 같습니다.

    신호등: 빨간색 - 녹색;

    질문: 예 - 아니오;

    램프: 켜기 - 끄기;

    가능합니다 - 불가능합니다.

    좋은 나쁜;

    진실은 거짓입니다.

    이리저리;

    예 아니오;

    이들은 모두 1비트의 정보량을 나타내는 신호이다.

    1비트 - 이것은 우리가 가능한 두 가지 옵션 중에서 하나를 선택할 수 있도록 하는 정보의 양입니다.

    컴퓨터 전자 회로에서 작동하는 전기 기계입니다. 컴퓨터가 입력된 정보를 인식하고 이해하기 위해서는 컴퓨터(기계) 언어로 번역되어야 합니다.

    출연자를 위한 알고리즘은 컴퓨터가 이해할 수 있는 언어로 작성, 즉 인코딩되어야 합니다.

    이것은 전기 신호입니다. 전류가 흐르거나 전류가 흐르지 않습니다.

    기계 이진 언어 - "0"과 "1"의 시퀀스입니다. 각 이진수는 0 또는 1 값을 가질 수 있습니다.

    기계 이진 코드의 각 숫자는 1비트에 해당하는 정보량을 전달합니다.

    정보의 가장 작은 단위를 나타내는 이진수를 그것 . 비트는 0 또는 1일 수 있습니다. 컴퓨터에 자기 또는 전자 신호가 있다는 것은 0이 없으면 1을 의미합니다.

    8비트 문자열을 호출합니다. 아이 . 컴퓨터는 이 문자열을 별도의 문자(숫자, 문자)로 처리합니다.

    예를 들어보겠습니다. ALICE라는 단어는 5개의 문자로 구성되며 각 문자는 컴퓨터 언어에서 1바이트로 표시됩니다(그림 10 참조). 따라서 Alice는 5바이트로 측정할 수 있습니다.

    쌀. 10. 바이너리 코드(소스)

    비트와 바이트 외에도 다른 정보 단위가 있습니다.

    서지

    1. 보소바 L.L. 정보학 및 ICT: 5학년 교과서. - M.: 바이놈. 지식 연구소, 2012.

    2. 보소바 L.L. 정보학: 5학년을 위한 워크북. - M.: 바이놈. 지식 연구소, 2010.

    3. Bosova L.L., Bosova A.Yu. 5-6학년 정보학 수업: 방법론적 가이드. - M.: 바이놈. 지식 연구소, 2010.

    2. 축제 "공개 수업"().

    숙제

    1. §1.6, 1.7(Bosova L.L. Informatics and ICT: 5학년 교과서).

    2. 페이지 28, 작업 1, 4; 30페이지, 과제 1, 4, 5, 6(Bosova L.L. Informatics and ICT: 5학년 교과서).