이진 코드로 단어를 암호화합니다. 텍스트 정보의 코딩. 이진 시스템 숫자를 십진수로 변환


아리야바타
키릴 문자
그리스 어 그루지야 사람
에티오피아 사람
유대인
악샤라상키야 다른 바빌로니아 사람
이집트 사람
에트루리아 사람
로마 인
다뉴브 강 애틱
키푸
마야인
에게해
KPPU 기호 위치 , , , , , , , , , , 부정 위치 대칭 혼합 시스템 피보나치 비위치적 단위(단항)

이진수 시스템- 2진수를 사용하는 위치 수 시스템. 논리 게이트를 사용하여 디지털 전자 회로에 직접 구현한 덕분에 이진 시스템은 거의 모든 최신 컴퓨터 및 기타 컴퓨팅 전자 장치에 사용됩니다.

숫자의 이진 표기법

이진수 체계에서 숫자는 두 개의 기호( 0 그리고 1 ). 숫자가 어떤 숫자 체계로 기록되었는지 혼동을 피하기 위해 오른쪽 하단에 표시기가 제공됩니다. 예를 들어, 10진수 체계의 숫자 5 10 , 바이너리로 101 2 . 때때로 이진수는 접두어로 표시됩니다. 0b또는 상징 &(앰퍼샌드), 예를 들어 0b101또는 그에 따라 &101 .

이진수 체계(십진수를 제외한 다른 숫자 체계와 마찬가지로)에서는 숫자가 한 번에 하나씩 읽혀집니다. 예를 들어, 숫자 101 2는 “one zero one”으로 발음됩니다.

정수

이진수 체계로 표기된 자연수는 다음과 같습니다. (an − 1 an n − 2 … a 1 a 0) 2 (\displaystyle (a_(n-1)a_(n-2)\dots a_(1)a_(0))_(2)), 의미는 다음과 같습니다.

(an − 1 an − 2 … a 1 a 0) 2 = ∑ k = 0 n − 1 a k 2 k , (\displaystyle (a_(n-1)a_(n-2)\dots a_(1)a_( 0))_(2)=\sum _(k=0)^(n-1)a_(k)2^(k),)

음수

음의 이진수는 십진수와 마찬가지로 숫자 앞에 "-" 기호를 붙여 표시합니다. 즉, 이진수 체계로 작성된 음의 정수입니다. (− a n − 1 a n − 2 … a 1 a 0) 2 (\displaystyle (-a_(n-1)a_(n-2)\dots a_(1)a_(0))_(2)), 값은 다음과 같습니다.

(− a n − 1 a n − 2 … a 1 a 0) 2 = − ∑ k = 0 n − 1 a k 2 k . (\displaystyle (-a_(n-1)a_(n-2)\dots a_(1)a_(0))_(2)=-\sum _(k=0)^(n-1)a_( k)2^(k).)

추가 코드.

분수

이진수 시스템으로 작성된 분수는 다음과 같습니다. (an − 1 a n − 2 … a 1 a 0 , a − 1 a − 2 … a − (m − 1) a − m) 2 (\displaystyle (a_(n-1)a_(n-2)\dots a_(1)a_(0),a_(-1)a_(-2)\dots a_(-(m-1))a_(-m))_(2)), 값은 다음과 같습니다.

(an − 1 a n − 2 … a 1 a 0 , a − 1 a − 2 … a − (m − 1) a − m) 2 = ∑ k = − m n − 1 a k 2 k , (\displaystyle (a_( n-1)a_(n-2)\점 a_(1)a_(0),a_(-1)a_(-2)\점 a_(-(m-1))a_(-m))_( 2)=\합 _(k=-m)^(n-1)a_(k)2^(k),)

이진수 더하기, 빼기, 곱하기

가산표

열 추가의 예(이진수로 표현된 10진수 표현 14 10 + 5 10 = 19 10은 1110 2 + 101 2 = 10011 2와 같습니다):

열 곱셈의 예(이진수로 표현된 10진수 표현 14 10 * 5 10 = 70 10은 1110 2 * 101 2 = 1000110 2와 같습니다):

숫자 1부터 시작하여 모든 숫자에 2를 곱합니다. 1 뒤에 오는 점을 이진점이라고 합니다.

이진수를 십진수로 변환

우리에게 이진수가 주어졌다고 가정해 봅시다. 110001 2 . 십진수로 변환하려면 다음과 같이 자릿수별 합으로 씁니다.

1 * 2 5 + 1 * 2 4 + 0 * 2 3 + 0 * 2 2 + 0 * 2 1 + 1 * 2 0 = 49

조금 다르게 같은 것 :

1 * 32 + 1 * 16 + 0 * 8 + 0 * 4 + 0 * 2 + 1 * 1 = 49

다음과 같이 테이블 형식으로 작성할 수 있습니다.

512 256 128 64 32 16 8 4 2 1
1 1 0 0 0 1
+32 +16 +0 +0 +0 +1

오른쪽에서 왼쪽으로 이동합니다. 각 이진 단위 아래에 해당하는 내용을 아래 줄에 쓰십시오. 결과 십진수를 더합니다. 따라서 이진수 110001 2는 십진수 49 10과 같습니다.

분수 이진수를 십진수로 변환

숫자를 변환해야 함 1011010,101 2 십진법으로. 이 숫자를 다음과 같이 쓰자.

1 * 2 6 + 0 * 2 5 + 1 * 2 4 + 1 * 2 3 + 0 * 2 2 + 1 * 2 1 + 0 * 2 0 + 1 * 2 −1 + 0 * 2 −2 + 1 * 2 −3 = 90,625

조금 다르게 같은 것 :

1 * 64 + 0 * 32 + 1 * 16 + 1 * 8 + 0 * 4 + 1 * 2 + 0 * 1 + 1 * 0,5 + 0 * 0,25 + 1 * 0,125 = 90,625

또는 표에 따르면:

64 32 16 8 4 2 1 0.5 0.25 0.125
1 0 1 1 0 1 0 , 1 0 1
+64 +0 +16 +8 +0 +2 +0 +0.5 +0 +0.125

Horner의 방법에 의한 변환

이 방법을 사용하여 숫자를 이진수에서 십진수로 변환하려면 숫자를 왼쪽에서 오른쪽으로 합산하고 이전에 얻은 결과에 시스템 밑수(이 경우 2)를 곱해야 합니다. Horner의 방법은 일반적으로 이진법을 십진법으로 변환하는 데 사용됩니다. 역연산은 이진수 체계의 덧셈과 곱셈 기술이 필요하기 때문에 어렵습니다.

예를 들어 이진수 1011011 2 다음과 같이 십진법으로 변환됩니다.

0*2 + 1 = 1
1*2 + 0 = 2
2*2 + 1 = 5
5*2 + 1 = 11
11*2 + 0 = 22
22*2 + 1 = 45
45*2 + 1 = 91

즉, 십진수 체계에서는 이 숫자가 91로 표시됩니다.

Horner의 방법을 사용하여 숫자의 분수 부분 변환

숫자는 오른쪽에서 왼쪽으로 숫자를 가져와 숫자 체계 기준(2)으로 나눕니다.

예를 들어 0,1101 2

(0 + 1 )/2 = 0,5
(0,5 + 0 )/2 = 0,25
(0,25 + 1 )/2 = 0,625
(0,625 + 1 )/2 = 0,8125

답: 0.1101 2 = 0.8125 10

10진수를 2진수로 변환

숫자 19를 이진수로 변환해야 한다고 가정해 보겠습니다. 다음 절차를 사용할 수 있습니다.

19/2 = 9(나머지 포함) 1
9/2 = 4(나머지 포함) 1
4/2 = 나머지 없이 2 0
2/2 = 나머지 없이 1 0
1/2 = 0(나머지 포함) 1

그래서 우리는 각 몫을 2로 나누고 나머지를 이진 표기법의 끝에 씁니다. 몫이 0이 될 때까지 계속 나눕니다. 결과를 오른쪽에서 왼쪽으로 씁니다. 즉, 맨 아래 숫자(1)가 가장 왼쪽이 됩니다. 결과적으로 이진 표기법으로 숫자 19를 얻습니다. 10011 .

분수 십진수를 이진수로 변환

원래 숫자에 정수 부분이 있는 경우 소수 부분과 별도로 변환됩니다. 분수를 10진수 시스템에서 2진수 시스템으로 변환하는 작업은 다음 알고리즘을 사용하여 수행됩니다.

  • 분수에 이진수 체계의 밑수를 곱합니다(2).
  • 결과 제품에서는 정수 부분이 분리되어 이진수 시스템에서 숫자의 가장 중요한 숫자로 간주됩니다.
  • 결과 제품의 분수 부분이 0과 같거나 필요한 계산 정확도가 달성되면 알고리즘이 종료됩니다. 그렇지 않으면 제품의 소수 부분에 대한 계산이 계속됩니다.

예: 분수 소수를 변환해야 합니다. 206,116 분수 이진수로.

전체 부분을 변환하면 이전에 설명한 알고리즘에 따라 206 10 =11001110 2 가 됩니다. 0.116의 분수 부분에 밑수 2를 곱하여 원하는 분수 이진수의 소수 자릿수에 곱의 정수 부분을 입력합니다.

0,116 2 = 0 ,232
0,232 2 = 0 ,464
0,464 2 = 0 ,928
0,928 2 = 1 ,856
0,856 2 = 1 ,712
0,712 2 = 1 ,424
0,424 2 = 0 ,848
0,848 2 = 1 ,696
0,696 2 = 1 ,392
0,392 2 = 0 ,784
등.

따라서 0.116 10 ≒ 0, 0001110110 2

우리는 다음을 얻습니다: 206.116 10 ≒ 11001110.0001110110 2

응용

디지털 장치에서

바이너리 시스템은 가장 간단하고 요구 사항을 충족하기 때문에 디지털 장치에 사용됩니다.

  • 시스템에 있는 값이 적을수록 해당 값에 따라 작동하는 개별 요소를 제조하기가 더 쉽습니다. 특히 이진수 체계의 두 자리는 많은 물리적 현상으로 쉽게 표현될 수 있습니다. 전류가 있음(전류가 임계값보다 큼) - 전류가 없음(전류가 임계값보다 작음), 자기장 유도가 임계값보다 큰지 여부(자기장 유도가 임계값보다 작음) 등
  • 요소의 상태 수가 적을수록 노이즈 내성이 높아지고 작동 속도가 빨라집니다. 예를 들어 전압, 전류 또는 자기장 유도의 크기를 통해 세 가지 상태를 인코딩하려면 두 개의 임계값과 두 개의 비교기를 도입해야 합니다.

컴퓨팅에서는 2의 보수로 음의 이진수를 쓰는 것이 널리 사용됩니다. 예를 들어, 숫자 −5 10은 −101 2로 쓸 수 있지만 32비트 컴퓨터에서는 2로 저장됩니다.

영어 측정 시스템에서

선형 치수를 인치로 표시할 때 전통적으로 소수 대신 이진 분수가 사용됩니다(예: 5½″, 7 15/16″, 3 11/32″ 등).

일반화

이진수 시스템은 이진 코딩 시스템과 밑이 2인 지수 가중치 함수의 조합입니다. 숫자는 이진 코드로 작성될 수 있으며 숫자 시스템은 이진수가 아닐 수도 있지만 다른 기반. 예: 십진수는 이진수로 작성되고 숫자 체계는 십진수인 BCD 인코딩입니다.

이야기

  • 3비트 및 6비트 숫자와 유사한 8개의 괘와 64개의 헥사그램의 완전한 세트는 고대 중국의 주역의 고전 텍스트에 알려져 있습니다. 헥사그램의 순서 변화의 책, 해당 이진수 값(0부터 63까지)에 따라 배열되며 이를 얻는 방법은 11세기 중국의 과학자이자 철학자인 소용(Shao Yong)에 의해 개발되었습니다. 그러나 Shao Yun이 두 문자 튜플을 사전순으로 배열하는 이진 산술 규칙을 이해했다는 증거는 없습니다.
  • 이진수 조합인 집합은 아프리카인들이 중세 풍수학과 함께 전통적인 점술(예: Ifa)에서 사용했습니다.
  • 1854년 영국의 수학자 조지 부울(George Boole)은 현재 부울 대수 또는 논리 대수로 알려진 논리에 적용되는 대수 시스템을 설명하는 획기적인 논문을 발표했습니다. 그의 논리학은 현대 디지털 전자 회로의 발전에 중요한 역할을 할 운명이었습니다.
  • 1937년 클로드 섀넌(Claude Shannon)은 변호를 위해 박사 학위 논문을 제출했습니다. 릴레이 및 스위칭 회로의 기호적 분석전자 릴레이 및 스위치와 관련하여 부울 대수 및 이진 연산이 사용되었습니다. 모든 현대 디지털 기술은 기본적으로 Shannon의 논문을 기반으로 합니다.
  • 1937년 11월, 나중에 벨 연구소에서 일했던 조지 스티비츠(George Stibitz)는 릴레이를 기반으로 한 "모델 K" 컴퓨터를 만들었습니다. 케이 itchen", 조립이 진행된 주방), 바이너리 추가를 수행했습니다. 1938년 후반에 Bell Labs는 Stiebitz가 이끄는 연구 프로그램을 시작했습니다. 그의 지휘 하에 만들어진 컴퓨터는 1940년 1월 8일에 완성되어 복소수 연산을 수행할 수 있게 되었습니다. 1940년 9월 11일 다트머스 대학에서 열린 미국 수학회 회의에서 Stibitz는 텔레타이프 기계를 사용하여 전화선을 통해 원격 복소수 계산기에 명령을 보내는 능력을 시연했습니다. 이는 전화선을 통해 원격 컴퓨터를 사용하려는 최초의 시도였습니다. 시위를 목격한 회의 참가자로는 John von Neumann, John Mauchly 및 Norbert Wiener가 있었으며 이들은 나중에 회고록에 이에 대해 썼습니다.

또한보십시오

노트

  1. 포포바 올가 블라디미로브나. 컴퓨터 과학 교과서 (한정되지 않은) .

바이너리 코드는 1과 0의 형태로 정보를 기록하는 형태입니다. 이는 2를 밑으로 하는 위치 지정입니다. 오늘날 이진 코드(아래에 제시된 표에는 숫자 쓰기의 몇 가지 예가 포함되어 있음)가 모든 디지털 장치에서 예외 없이 사용됩니다. 이러한 인기는 이러한 녹음 형식의 높은 신뢰성과 단순성으로 설명됩니다. 이진 연산은 매우 간단하므로 하드웨어 수준에서 구현하기 쉽습니다. 구성 요소(또는 논리라고도 함)는 논리 1(현재 있음)과 논리 0(현재 없음)의 두 가지 상태로만 작동하기 때문에 매우 안정적입니다. 따라서 작동이 과도 프로세스를 기반으로 하는 아날로그 구성 요소와 유리하게 비교됩니다.

이진 표기법은 어떻게 구성되나요?

그러한 키가 어떻게 형성되는지 알아 봅시다. 이진 코드의 한 비트에는 0과 1(0과 1)의 두 가지 상태만 포함될 수 있습니다. 2비트를 사용하면 00, 01, 10, 11의 네 가지 값을 쓸 수 있습니다. 3비트 항목에는 000, 001 ... 110, 111의 8가지 상태가 포함됩니다. 결과적으로 우리는 이진 코드는 비트 수에 따라 다릅니다. 이 표현식은 다음 공식을 사용하여 작성할 수 있습니다. N =2m, 여기서 m은 자릿수이고 N은 조합 수입니다.

바이너리 코드의 종류

마이크로프로세서에서 이러한 키는 처리된 다양한 정보를 기록하는 데 사용됩니다. 바이너리 코드의 너비는 내장 메모리를 크게 초과할 수 있습니다. 이러한 경우 긴 숫자는 여러 저장 위치를 ​​차지하고 여러 명령을 사용하여 처리됩니다. 이 경우 멀티바이트 바이너리 코드에 할당된 모든 메모리 섹터는 단일 숫자로 간주됩니다.

특정 정보를 제공해야 하는 필요성에 따라 다음 유형의 키가 구별됩니다.

  • 서명되지 않은;
  • 직접 정수 문자 코드;
  • 부호 있는 역;
  • 추가 서명;
  • 그레이 코드;
  • 그레이 익스프레스 코드;
  • 분수 코드.

각각에 대해 자세히 살펴보겠습니다.

부호 없는 바이너리 코드

이 유형의 녹음이 무엇인지 알아 봅시다. 부호 없는 정수 코드에서 각 숫자(이진수)는 2의 거듭제곱을 나타냅니다. 이 경우, 이 형식으로 쓸 수 있는 가장 작은 숫자는 0이고, 최대값은 다음 공식으로 나타낼 수 있습니다: M = 2 n -1. 이 두 숫자는 이러한 이진 코드를 표현하는 데 사용할 수 있는 키의 범위를 완전히 정의합니다. 언급된 녹음 형식의 기능을 살펴보겠습니다. 8비트로 구성된 이러한 유형의 서명되지 않은 키를 사용하는 경우 가능한 숫자 범위는 0~255입니다. 16비트 코드의 범위는 0~65535입니다. 8비트 프로세서에서는 2개의 메모리 섹터가 사용됩니다. 인접한 목적지에 위치한 번호를 저장하고 쓰는 것입니다. 특수 명령은 이러한 키에 대한 작업을 제공합니다.

직접 정수 부호 있는 코드

이 유형의 이진 키에서는 최상위 비트가 숫자의 부호를 기록하는 데 사용됩니다. 0은 플러스에 해당하고 1은 마이너스에 해당합니다. 이 숫자의 도입으로 인해 인코딩된 숫자의 범위가 음수 쪽으로 이동합니다. 8비트 부호 있는 정수 이진 키는 -127에서 +127 사이의 숫자를 쓸 수 있는 것으로 나타났습니다. 16비트 - 범위는 -32767에서 +32767입니다. 8비트 마이크로프로세서는 두 개의 인접한 섹터를 사용하여 이러한 코드를 저장합니다.

이러한 기록 형식의 단점은 키의 부호와 디지털 비트를 별도로 처리해야 한다는 것입니다. 이러한 코드를 사용하는 프로그램의 알고리즘은 매우 복잡합니다. 부호 비트를 변경하고 강조 표시하려면 이 기호를 마스킹하는 메커니즘을 사용해야 합니다. 이는 소프트웨어 크기가 급격히 증가하고 성능이 저하되는 원인이 됩니다. 이러한 단점을 제거하기 위해 역방향 이진 코드라는 새로운 유형의 키가 도입되었습니다.

서명된 역방향 키

이 기록 형식은 키의 모든 비트를 반전시켜 음수를 얻는다는 점에서만 직접 코드와 다릅니다. 이 경우 디지털 및 부호 비트는 동일합니다. 덕분에 이러한 유형의 코드를 사용하는 알고리즘이 크게 단순화되었습니다. 그러나 역방향 키에는 첫 번째 숫자 문자를 인식하고 숫자의 절대값을 계산하는 특수 알고리즘이 필요합니다. 결과 값의 부호를 복원합니다. 또한 숫자의 역방향 및 순방향 코드에서는 0을 쓰는 데 두 개의 키가 사용됩니다. 이 값에는 양수 또는 음수 부호가 없다는 사실에도 불구하고.

부호 있는 2의 보수 이진수

이 유형의 레코드에는 이전 키의 나열된 단점이 없습니다. 이러한 코드를 사용하면 양수와 음수를 직접 합산할 수 있습니다. 이 경우 부호 비트 분석은 수행되지 않습니다. 이 모든 것은 보수가 앞으로 및 뒤로 키와 같은 인위적인 형성이 아니라 자연스러운 기호 고리라는 사실에 의해 가능해졌습니다. 또한 중요한 요소는 바이너리 코드에서 보수 계산을 수행하는 것이 매우 쉽다는 것입니다. 이렇게 하려면 역방향 키에 하나를 추가하면 됩니다. 8자리로 구성된 이러한 유형의 기호 코드를 사용하는 경우 가능한 숫자 범위는 -128부터 +127까지입니다. 16비트 키의 범위는 -32768에서 +32767까지입니다. 8비트 프로세서는 또한 두 개의 인접한 섹터를 사용하여 이러한 숫자를 저장합니다.

이진 2의 보수 코드는 부호 전파 현상이라고 불리는 관찰 가능한 효과 때문에 흥미롭습니다. 이것이 무엇을 의미하는지 알아 봅시다. 이 효과는 단일 바이트 값을 더블 바이트 값으로 변환하는 과정에서 하위 바이트의 부호 비트 값을 상위 바이트의 각 비트에 할당하면 충분하다는 것입니다. 가장 중요한 비트를 사용하여 서명된 비트를 저장할 수 있다는 것이 밝혀졌습니다. 이 경우 키 값은 전혀 변경되지 않습니다.

그레이 코드

이러한 형태의 녹음은 본질적으로 1단계 키입니다. 즉, 한 값에서 다른 값으로 전환하는 과정에서 단 한 비트의 정보만 변경됩니다. 이 경우 데이터 읽기 오류로 인해 약간의 시간 이동으로 한 위치에서 다른 위치로 전환됩니다. 그러나 이러한 프로세스를 통해 각도 위치에 대해 완전히 잘못된 결과를 얻는 것은 완전히 배제됩니다. 이러한 코드의 장점은 정보를 미러링할 수 있다는 것입니다. 예를 들어 최상위 비트를 반전시켜 계산 방향을 간단히 변경할 수 있습니다. 이는 보완 제어 입력 덕분에 발생합니다. 이 경우 출력 값은 축 회전의 하나의 물리적 방향에 대해 증가하거나 감소할 수 있습니다. 그레이 키에 기록된 정보는 자연적으로 독점적으로 인코딩되어 실제 수치 데이터를 전달하지 않으므로 추가 작업을 수행하기 전에 먼저 이를 일반적인 이진 형식의 기록으로 변환해야 합니다. 이는 Gray-Binar 디코더라는 특수 변환기를 사용하여 수행됩니다. 이 장치는 하드웨어와 소프트웨어 모두의 기본 논리 요소를 사용하여 쉽게 구현됩니다.

그레이 익스프레스 코드

그레이의 표준 1단계 키는 숫자 2로 표현되는 솔루션에 적합합니다. 다른 솔루션을 구현해야 하는 경우에는 이러한 형태의 녹음에서 중간 부분만 잘라서 사용합니다. 결과적으로 키의 1단계 특성이 보존됩니다. 그러나 이 코드에서 숫자 범위의 시작은 0이 아닙니다. 지정된 값만큼 이동됩니다. 데이터 처리 중에 생성된 펄스에서 초기 분해능과 감소된 분해능 간의 차이 절반이 차감됩니다.

고정 소수점 이진 키의 분수 표현

작업 과정에서 정수뿐만 아니라 분수도 연산해야 합니다. 이러한 숫자는 직접 코드, 역방향 코드 및 보완 코드를 사용하여 작성할 수 있습니다. 언급된 키를 구성하는 원리는 정수의 구성 원리와 동일합니다. 지금까지 우리는 이진수 쉼표가 최하위 숫자 오른쪽에 있어야 한다고 믿었습니다. 그러나 그것은 사실이 아닙니다. 가장 유효숫자 왼쪽(이 경우 분수만 변수로 쓸 수 있음), 변수 중간(혼합된 값도 쓸 수 있음)에 위치할 수 있습니다.

이진 부동 소수점 표현

이 형식은 글을 쓰는 데 사용되거나 그 반대의 경우도 마찬가지입니다. 매우 작습니다. 예로는 성간 거리나 원자와 전자의 크기 등이 있습니다. 그러한 값을 계산할 때 매우 큰 이진 코드를 사용해야 합니다. 그러나 밀리미터 단위의 정밀도로 우주 거리를 고려할 필요는 없습니다. 따라서 이 경우 고정 소수점 표기 형식은 효과적이지 않습니다. 이러한 코드를 표시하기 위해 대수적 형식이 사용됩니다. 즉, 숫자는 원하는 숫자 순서를 반영하는 10의 거듭제곱을 곱한 가수로 기록됩니다. 가수는 1보다 커서는 안 되며, 소수점 뒤에 0을 쓰면 안 된다는 점을 알아야 한다.

이진 미적분학은 18세기 초 독일 수학자 고트프리트 라이프니츠(Gottfried Leibniz)가 창안한 것으로 알려져 있습니다. 그러나 최근 과학자들이 발견한 바와 같이 폴리네시아 망가레바 섬 이전에 이러한 유형의 산술이 사용되었습니다. 식민지화로 인해 원래 숫자 체계가 거의 완전히 파괴되었음에도 불구하고 과학자들은 복잡한 이진수 및 십진수 계산 유형을 복원했습니다. 또한 인지과학자 누네즈(Nunez)는 이진 코딩이 기원전 9세기 초 고대 중국에서 사용되었다고 주장합니다. 이자형. 마야인과 같은 다른 고대 문명에서도 시간 간격과 천문 현상을 추적하기 위해 십진법과 이진법의 복잡한 조합을 사용했습니다.

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

우리에게 친숙한 숫자의 10진수 코딩, 즉 10진수 코드, 2진수 코딩과 달리 코드의 밑수는 2입니다(그림 2.9). 즉, 이진 코드의 각 코드 숫자(각 숫자)는 10개의 값(10진 코드에서와 같이: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9)을 가질 수 없지만, 2 - 0과 1. 위치 기록 시스템은 동일하게 유지됩니다. 즉, 최하위 숫자가 오른쪽에 기록되고 가장 중요한 숫자가 왼쪽에 기록됩니다. 그러나 십진법에서 각 후속 숫자의 가중치가 이전 숫자의 가중치보다 10배 더 크면 이진법(이진 코딩 사용)에서는 두 배 더 큽니다. 이진 코드의 각 비트는 비트(영어 "Binary Digit" - "binary number"에서 유래)라고 합니다.

쌀. 2.9. 10진수 및 2진수 코딩

테이블에 그림 2.3은 10진수와 2진수 체계의 처음 20개 숫자 사이의 대응 관계를 보여줍니다.

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

표 2.3. 10진수와 2진수 시스템의 숫자 간의 대응
십진법 바이너리 시스템 십진법 바이너리 시스템

이진수 기록을 단순화하기 위해 소위 16진수 시스템(16진수 코딩)이 제안되었습니다. 이 경우, 모든 이진 비트는 4개의 비트 그룹(최하위 비트부터 시작)으로 나누어지고, 각 그룹은 하나의 심볼로 인코딩됩니다. 이러한 각 그룹을 호출합니다. 조금씩 깨물다(또는 조금씩 깨물다, 공책) 및 두 그룹(8비트) - 바이트. 테이블에서 2.3은 4비트 이진수가 16가지 다른 값(0에서 15까지)을 가질 수 있음을 보여줍니다. 따라서 16진수 코드에 필요한 문자 수도 16자이므로 코드 이름이 붙었습니다. 처음 10자는 0부터 9까지의 숫자이며, 그 다음에는 라틴 알파벳의 첫 대문자 6개(A, B, C, D, E, F)가 사용됩니다.

쌀. 2.10.숫자의 2진수 및 16진수 표기법

테이블에 2.4는 처음 20개 숫자(2진수는 괄호 안에 표시됨)의 16진수 인코딩 예를 보여줍니다. 그림 2.10은 2진수를 16진수 형식으로 쓰는 예를 보여줍니다. 16진수 인코딩을 나타내기 위해 문자 "h" 또는 "H"(영어 Hexadecimal에서 유래)가 때때로 숫자 끝에 사용됩니다. 예를 들어 항목 A17F h는 16진수 A17F를 나타냅니다. 여기서 A1은 숫자의 상위 바이트를 나타내고 7F는 숫자의 하위 바이트를 나타냅니다. 전체 숫자(이 경우 2바이트 숫자)가 호출됩니다. 한마디로.

표 2.4. 16진수 코딩 시스템
십진법 16진수 시스템 십진법 16진수 시스템
0 (0) 에이(1010)
1(1) 비(1011)
2 (10) C (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진수 시스템처럼 자유롭게 처리하는 방법을 배워야 시스템 간 전환이 필요하지 않습니다.

논의된 코드 외에도 소위 이진수 표현이 있습니다. 16진수 코드와 마찬가지로 BCD 코드에서는 코드의 각 숫자가 4개의 이진수에 해당하지만, 4개의 이진수로 구성된 각 그룹은 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과 같습니다. 비트를 반대 비트인 1010으로 바꾸고 1을 추가합니다: 1011. 결과를 원래 숫자와 합합니다: 1011 + 0101 = 0000(5번째 숫자로의 전송은 무시합니다) .

2의 보수 코드에서 음수는 가장 중요한 숫자의 값으로 양수와 구별됩니다. 가장 중요한 숫자의 1은 음수를 정의하고 0은 양수를 정의합니다.

표준 산술 연산 외에도 이진수 시스템은 모듈로 2 덧셈과 같은 몇 가지 특정 연산도 사용합니다. 이 연산(A로 표시)은 비트 방식입니다. 즉, 한 숫자에서 다른 숫자로의 전송이나 차용이 없습니다. 가장 높은 숫자. 모듈로 2의 덧셈 규칙은 다음과 같습니다: , , . 동일한 작업을 함수라고 합니다. 독점 또는. 예를 들어, 두 이진수 0111과 1011을 모듈로 2로 합산해 보겠습니다.

이진수에 대한 다른 비트 연산에는 AND 함수와 OR 함수가 포함됩니다. AND 함수는 두 원래 숫자의 해당 비트가 모두 1인 경우에만 1을 반환하고, 그렇지 않으면 결과는 -0입니다. OR 함수는 원래 숫자의 해당 비트 중 적어도 하나가 1이면 1이 되고, 그렇지 않으면 결과는 0이 됩니다.

텍스트가 쓰여지는 문자 집합을 호출합니다. 알파벳.

알파벳의 문자 수는 다음과 같습니다. .

정보량을 결정하는 공식: N=2b,

여기서 N은 알파벳의 거듭제곱(문자 수)이고,

b - 비트 수(기호의 정보 가중치)

256자 용량의 알파벳은 필요한 거의 모든 문자를 수용할 수 있습니다. 이 알파벳은 충분한.

왜냐하면 256 = 2 8이면 1문자의 가중치는 8비트입니다.

측정 단위 8비트라는 이름이 붙여졌습니다. 1바이트:

1바이트 = 8비트.

컴퓨터 텍스트의 각 문자에 대한 이진 코드는 1바이트의 메모리를 차지합니다.

텍스트 정보는 컴퓨터 메모리에 어떻게 표현됩니까?

바이트 단위 문자 인코딩의 편리성은 바이트가 메모리에서 주소를 지정할 수 있는 가장 작은 부분이므로 프로세서가 텍스트를 처리할 때 각 문자에 개별적으로 액세스할 수 있다는 점에서 분명합니다. 반면에 256자는 다양한 기호 정보를 표현하기에 충분한 숫자입니다.

이제 각 문자에 어떤 8비트 이진 코드를 할당할지에 대한 질문이 생깁니다.

이는 조건부 문제임이 분명하며 다양한 인코딩 방법을 생각해낼 수 있습니다.

컴퓨터 알파벳의 모든 문자는 0부터 255까지 번호가 매겨져 있습니다. 각 숫자는 00000000부터 11111111까지의 8비트 이진 코드에 해당합니다. 이 코드는 단순히 이진수 시스템에서 문자의 일련 번호입니다.

컴퓨터 알파벳의 모든 문자에 일련 번호가 할당된 테이블을 인코딩 테이블이라고 합니다.

컴퓨터 유형에 따라 서로 다른 인코딩 테이블이 사용됩니다.

테이블은 PC의 국제 표준이 되었습니다. 아스키(aski 읽기) (정보 교환을 위한 미국 표준 코드).

ASCII 코드 테이블은 두 부분으로 나뉩니다.

표의 전반부만 국제표준입니다. 숫자가 포함된 기호 0 (00000000), 최대 127 (01111111).

ASCII 인코딩 테이블 구조

일련번호

암호

상징

0 - 31

00000000 - 00011111

0부터 31까지의 숫자를 가진 기호를 일반적으로 제어 기호라고 합니다.
그 기능은 화면에 텍스트를 표시하거나 인쇄하는 과정, 소리 신호 소리, 텍스트 표시 등을 제어하는 ​​것입니다.

32 - 127

00100000 - 01111111

테이블의 표준 부분(영어). 여기에는 라틴 알파벳의 소문자 및 대문자, 소수, 구두점, 모든 종류의 괄호, 상업 및 기타 기호가 포함됩니다.
문자 32는 공백입니다. 텍스트의 빈 위치.
다른 모든 것은 특정 표시로 반영됩니다.

128 - 255

10000000 - 11111111

테이블의 대체 부분(러시아어).
코드 페이지(10000000에서 시작하여 11111111로 끝나는 128개의 코드)라고 하는 ASCII 코드 테이블의 두 번째 부분에는 다양한 옵션이 있을 수 있으며 각 옵션에는 고유한 번호가 있습니다.
코드 페이지는 주로 라틴어 이외의 국가 알파벳을 수용하는 데 사용됩니다. 러시아 국가 인코딩에서는 러시아 알파벳 문자가 테이블의 이 부분에 배치됩니다.

ASCII 코드 테이블의 전반부


인코딩 테이블에서는 문자(대문자, 소문자)는 알파벳순으로, 숫자는 오름차순으로 정렬되어 있으니 참고하시기 바랍니다. 기호 배열에서 사전 편찬 순서를 준수하는 것을 알파벳 순차 코딩의 원리라고 합니다.

러시아 알파벳 문자의 경우 순차 코딩 원칙도 준수됩니다.

ASCII 코드 테이블의 후반부


불행하게도 현재 다섯 가지 키릴 문자 인코딩(KOI8-R, Windows, MS-DOS, Macintosh 및 ISO)이 있습니다. 이로 인해 러시아어 텍스트를 한 컴퓨터에서 다른 컴퓨터로, 한 소프트웨어 시스템에서 다른 소프트웨어 시스템으로 전송할 때 문제가 자주 발생합니다.

연대순으로 컴퓨터에서 러시아어 문자를 인코딩하는 최초의 표준 중 하나는 KOI8("정보 교환 코드, 8비트")이었습니다. 이 인코딩은 70년대 ES 컴퓨터 시리즈의 컴퓨터에서 사용되었으며, 80년대 중반부터 UNIX 운영 체제의 첫 번째 Russified 버전에서 사용되기 시작했습니다.

MS DOS 운영 체제가 지배하던 90년대 초반부터 CP866 인코딩이 남아 있습니다("CP"는 "코드 페이지", "코드 페이지"를 의미함).

Mac OS 운영 체제를 실행하는 Apple 컴퓨터는 자체 Mac 인코딩을 사용합니다.

또한 ISO(국제 표준 기구)에서는 ISO 8859-5라는 또 다른 인코딩을 러시아어 표준으로 승인했습니다.

현재 사용되는 가장 일반적인 인코딩은 Microsoft Windows(약어로 CP1251)입니다.

90년대 후반부터 문자 인코딩 표준화 문제는 이라는 새로운 국제 표준의 도입으로 해결되었습니다. 유니코드. 이는 16비트 인코딩입니다. 각 문자에 대해 2바이트의 메모리를 할당합니다. 물론 이렇게 하면 차지하는 메모리 양이 2배 증가합니다. 그러나 이러한 코드 테이블에서는 최대 65536자를 포함할 수 있습니다. 유니코드 표준의 전체 사양에는 세계의 모든 기존 문자, 멸종 문자, 인공적으로 생성된 문자뿐만 아니라 많은 수학, 음악, 화학 및 기타 기호가 포함됩니다.

ASCII 테이블을 사용하여 컴퓨터 메모리에 단어가 어떻게 보일지 상상해 봅시다.

컴퓨터 메모리에 있는 단어의 내부 표현

때로는 다른 컴퓨터에서 수신한 러시아어 알파벳 문자로 구성된 텍스트를 읽을 수 없는 경우가 있습니다. 일종의 "abracadabra"가 모니터 화면에 표시됩니다. 이는 컴퓨터가 러시아어에 대해 서로 다른 문자 인코딩을 사용하기 때문에 발생합니다.

바이너리 변환을 수행하는 도구입니다. 이진 코드는 정보학에서 사용되는 2진수를 사용하는 숫자 체계로, 이진 표기법에 사용되는 기호는 일반적으로 0과 1(0과 1)입니다.

질문에 대한 답변

이 Q&A를 편집할 수 있습니다(새 정보 추가, 번역 개선 등). " itemscope="" itemtype="http://schema.org/Question">

숫자를 이진수로 변환하는 방법은 무엇입니까?

숫자를 2진수(0과 1 포함)로 변환하는 방법은 10진수에서 2진수(자연수)로 구성됩니다. 바이너리 코드)

예: 5(진수 10) = 1*2^2+0*2^1+1*2^0 = 101(진수 2)

이 방법은 2로 연속적으로 나누고 나머지(0 또는 1)를 역순으로 기록하는 것으로 구성됩니다.

예: 6/2 = 3은 0으로 유지되고, 3/2 = 1은 1로 유지되고, 1/2 = 0은 1로 유지됩니다. 연속된 나머지는 0,1,1이므로 6은 110으로 기록됩니다. 바이너리로.

이 Q&A를 편집할 수 있습니다(새 정보 추가, 번역 개선 등). " itemscope="" itemtype="http://schema.org/Question">

텍스트를 바이너리로 변환하는 방법은 무엇입니까?

예를 들어 코드 또는 를 사용하여 알파벳의 각 문자에 숫자를 연결합니다. 그러면 각 문자가 이진수로 변환될 수 있는 숫자로 대체됩니다(위 참조).

예: AZ는 65.90()이므로 1000001.1011010입니다. 바이너리로

마찬가지로 이진을 텍스트로 변환하는 경우 이진을 숫자로 변환한 다음 해당 숫자를 원하는 코드의 문자와 연결합니다.

이 Q&A를 편집할 수 있습니다(새 정보 추가, 번역 개선 등). " itemscope="" itemtype="http://schema.org/Question">

바이너리를 번역하는 방법

바이너리는 직접 변환되지 않으며 인코딩된 숫자는 무엇이든 바이너리로숫자로 남아있습니다. 반면, 컴퓨터 과학에서는 숫자와 문자를 연결하는 테이블을 사용하는 등 바이너리를 사용하여 텍스트를 저장하는 것이 일반적입니다. dCode에서 번역기를 사용할 수 있습니다.

이 Q&A를 편집할 수 있습니다(새 정보 추가, 번역 개선 등). " itemscope="" itemtype="http://schema.org/Question">

조금이란 무엇입니까?

비트(이진수 축소)는 이진수 표기법(0 또는 1)의 기호입니다.

이 Q&A를 편집할 수 있습니다(새 정보 추가, 번역 개선 등). " itemscope="" itemtype="http://schema.org/Question">

1"의 보수란 무엇입니까?

정보학에서 1의 보수는 0과 1을 음수로 반전시키는 숫자를 쓰는 것입니다.

예: 0111은 1000이 되므로 7은 -7이 됩니다.

이 Q&A를 편집할 수 있습니다(새 정보 추가, 번역 개선 등). " itemscope="" itemtype="http://schema.org/Question">

2"의 보수란 무엇입니까?

정보학에서 1의 보수는 0과 1을 음수로 반전하고 1을 더하는 숫자를 쓰는 것입니다.

예: 0111은 1001이 됩니다

새로운 질문하기

소스 코드

dCode는 온라인 스크립트 바이너리 코드의 소스 코드에 대한 소유권을 보유합니다. 명시적인 오픈 소스 라이선스(크리에이티브 커먼즈/무료로 표시)를 제외하고 모든 알고리즘, 애플릿, 스니펫, 소프트웨어(변환기, 해결사, 암호화/복호화, 인코딩/디코딩, 암호화/해독, 번역기) 또는 모든 기능(변환, 해결, 복호화) dCode가 권리를 소유한 모든 정보 언어(PHP, Java, C#, Python, Javascript, Matlab 등)로 작성된 암호화, 해독, 암호화, 디코딩, 코딩, 번역은 무료로 공개되지 않습니다. PC, iPhone 또는 Android에서 오프라인으로 사용할 수 있도록 온라인 바이너리 코드 스크립트를 다운로드하려면 다음 사이트에서 가격 견적을 요청하세요.