Что такое 1 и 0 в компьютере

Обновлено: 06.07.2024

Ей было тысяча сто лет.
Она в сто первый класс ходила,
В портфеле по сто книг носила -
Всё это правда, а не бред.
Когда пыля десятком ног,
Она шагала по дороге,
За ней всегда бежал щенок
С одним хвостом, зато стоногий .
Она ловила каждый звук
Своими десятью ушами,
И десять загорелых рук
Портфель и поводок держали.
И десять тёмно-синих глаз
Рассматривали мир привычно…

Но станет всё совсем обычным,
Когда поймёте наш рассказ.

С помощью двоичной системы кодирования можно зафиксировать любые данные и знания. Это легко понять, если вспомнить принцип кодирования и передачи информации с помощью азбуки Морзе.

Телеграфист, используя только два символа этой азбуки - точки и тире, может передать практически любой текст.

Объём памяти компьютера измеряется в байтах. Каждый байт может выражать букву, число, пробел, знак препинания или какой-либо другой символ. Количество символов, которые компьютер может хранить в оперативной памяти, меняется в широких пределах от вида компьютера и его модели.

Объём памяти, хотя он и измеряется в байтах, обычно выражается в килобайтах. Слово "килобайт", вообще говоря, означает "1000 байт". (Напомним, что приставка "кило" означает "тысяча".)

Фактически же килобайт равен 1024 байтам: 1 Кбайт = 1024 байт.

Компьютер с объёмом памяти в 64 К может хранить 64 х 1024 = 65536 символов.

Объём памяти первых микрокомпьютеров составлял всего лишь 2 Кб. Нынешние компьютеры имеют объём памяти 128, 256, 512, 1024 Мб и более

Объём памяти новейших компьютеров так велик, что она выражается в гигабайтах, т. е. в миллиардах байтов.

1 Мбайт = 1024 Кбайт = 1 048 576 байт.

Итак, каждый символ алфавитно-цифровой информации представляется в компьютере кодом из восьми двоичных цифр. Следовательно, каждый символ в компьютере имеет код объёмом 1 байт.

имеет в двоичной форме объём 25 байт: 23 буквы и 2 символа "пробел" по 1 байту.

Пример . Измерим в байтах объём текстовой информации в книге из 258 страниц, если на одной странице размещается в среднем 45 строк по 60 символов (включая пробелы). Один символ в двоичной форме содержит 1 байт. Строка будет содержать 61 байт, учитывая и служебный символ окончания строки. Тогда

61 байт * 45 строк = 2745 байт.

Так как в книге 258 страниц текста и на каждой странице в среднем по 2745 байт информации, то объём алфавитно-цифровой информации в книге

2745 байт * 258 страниц = 708210 байт " 692 Кбайт

Таким образом, текст книги имеет объём около 692 Кбайт.

Перевод чисел

Для перевода десятичного числа в двоичное надо разделить его на 2 и собрать остатки, начиная с последнего частного.

А вот как происходит перевод двоичного числа в десятичное:


В любой системе счисления нужно уметь представлять не только целые числа, но и дробные. С математической точки зрения это ординарная задача, которая давно решена. Однако с точки зрения компьютерной техники это далеко не тривиальная проблема, во многом связанная с архитектурой компьютера. Ресурсы компьютеров не бесконечны, и основной трудностью является представление периодических и непериодических дробей. Следовательно, такие дроби следует округлять, задавать класс точности участвующих (и могущих появиться в результате вычислений!) чисел без потери точности вычислений, а также следить за тем, чтобы потеря точности не произошла при переводе чисел из одной системы счисления в другую. Особенно важно аккуратно производить вычисления при операциях с плавающей точкой.

Запишем формулу представления дробного числа в позиционной системе счисления:

Ap = an-1·p n-1 +an-2·p n-2 + . + a1·p 1 +a0·p 0 +a-1·p -1 +a-2·p -2 + . + a-m·p -m ,

В случае десятичной системы счисления получим:

Перевод дробного числа из двоичной системы счисления в десятичную производится по следующей схеме:

101101,1012 = (1·2 5 +0·2 4 +1·2 3 +1·2 2 +0·2 1 +1·2 0 +1·2 -1 +0·2 -2 +1·2 -3 )10=45,62510

Перевод дробного числа из десятичной системы счисления в двоичную осуществляется по следующему алгоритму:

· Вначале переводится целая часть десятичной дроби в двоичную систему счисления;

· Затем дробная часть десятичной дроби умножается на основание двоичной системы счисления;

· В полученном произведении выделяется целая часть, которая принимается в качестве значения первого после запятой разряда числа в двоичной системе счисления;

· Алгоритм завершается, если дробная часть полученного произведения равна нулю или если достигнута требуемая точность вычислений. В противном случае вычисления продолжаются с предыдущего шага.

Пример: Требуется перевести дробное десятичное число 206,116 в дробное двоичное число.

Перевод целой части дает 20610=110011102 по ранее описанным алгоритмам; дробную часть умножаем на основание 2, занося целые части произведения в разряды после запятой искомого дробного двоичного числа:

.116 • 2 = 0 .232

.232 • 2 = 0 .464

.464 • 2 = 0 .928

.928 • 2 = 1 .856

.856 • 2 = 1 .612

.612 • 2 = 1 .224

.224 • 2 = 0 .448

.448 • 2 = 0 .896

.896 • 2 = 1 .792

.792 • 2 = 1 .584

Получим: 206,11610=11001110,00011100112

Таблицу степеней первых восьми отрицательных степеней двойки

Степень основания

Перейдем теперь к вопросу представления отрицательных чисел. Для определенности рассмотрим тип byte , в котором любое число занимает ровно восемь бит . Из записи в двоичной системе счисления равенства (- 1) + 1 = 0 легко найти, какой вид должно иметь неизвестное нам пока двоичное представление xxxxxxxx числа - 1 :

Ясно, что на месте символов xxxxxxxx должно быть расположено число 11111111 . Правильным результатом при этом, конечно, следовало бы считать 100000000 , а не 00000000 , но ведь мы имеем дело с типом byte и, так как результат обязан разместиться в байте, единица <<исчезает>>.

Итак, число - 1 должно кодироваться как 11111111 . Дальнейшее уже совсем просто: для получения - 2 нужно - 1 уменьшить на единицу, что даст 11111110 ; число - 3 представляется как 11111101 и т.д.

Отрицательные числа всегда имеют в своем двоичном представлении единицу в самом старшем разряде, который поэтому называют знаковым , а абсолютная величина кодируемого числа получается как двоичное дополнение остальных бит (нули нужно заменить на единицы и наоборот), увеличенное на один.

Легко видеть, что при этом самым маленьким отрицательным числом, которое принадлежит типу byte , является число - 128 (двоичное представление 10000000 ), а самым большим -- число 127 (представление 01111111 ). Все представимыe числа (а их 256) в данном случае могут быть получены как пересечение двух множеств: множества Z всех целых чисел и отрезка [ - 128; 127 ] .

Интересным является следующее наблюдение: если число 01111111 увеличить на единицу, то получится 10000000 , что означает следующее:

Итак, множество элементов типа byte можно представлять себе в виде свернутого в кольцо отрезка
[ - 128; 127 ] .

То, что для элементов множества , являющегося машинным аналогом Z , нарушено фундаментальное свойство целых чисел X + 1 > X , способно привести к различным невероятным на первый взгляд результатам, однако гораздо более странные вещи происходят при работе с вещественными числами.

Двоичная арифметика

Над числами в двоичной системе счисления можно выполнять арифметические действия.

Немного истории

Впервые о данной системе чисел заговорил основоположник математического анализа Г.В. Лейбниц еще в XVII веке. Он доказал, что для данного множества действуют все арифметические операции: сложение, вычитание, умножение и даже деление. Однако вплоть до 30-х годов XX века данную систему не рассматривали всерьез. Но с развитием электронных устройств и ЭВМ, ученые вновь принялись к изучению данной темы, так как двоичная система отлично подходила для программирования и организации хранения данных в памяти компьютеров.

Таблица и алфавит

Алфавит двоичной системы счисления состоит всего из двух знаков: 0 и 1 . Однако это нисколько не усложняет выполнение арифметических действий.

Кроме того, двоичная система является самой удобной для быстрого перевода в другие системы счисления.

Так, чтобы перевести двоичное число в десятичное, необходимо найти значение его развернутой формы . Например:

1001102 = 1 ∙ 2 5 + 0 ∙ 2 4 + 0 ∙ 2 3 + 1 ∙ 2 2 + 1 ∙ 2 2 + 0 ∙ 2 0 = 32 + 0 + 0 + 4 + 2 + 0 = 3810

Чтобы наоборот перевести число в двоичную из десятичной, необходимо выполнить его деление на 2 с остатком, а затем записать все остатки в обратном порядке, начиная с частного:

Делимое 38 19 9 4 2
Делитель 2 2 2 2 2
Частное 19 9 4 2 1
Остаток 0 1 1 0 0

Для перевода в другие системы необходимо:

  • Перевести двоичный код в десятичный.
  • Выполнить деление десятичного числа на основание той системы, в которую требуется перевести.

Двоичная Восьмеричная Шестнадцатеричная
0 0 0
001 1 1
010 2 2
011 3 3
100 4 4
101 5 5
110 6 6
111 7 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F

110010012 = 11 001 001 = 011 001 001 = 3118

110010012 = 1100 1001 = С916

Представление двоичных чисел

В двоичной системе также существует понятие «отрицательных» чисел. И для того, чтобы провести какую-либо операцию с ними в двоичном коде, необходимо представить его в виде дополнительного кода. Запись положительного числа при этом не меняется ни для одного из кодов.

Чтобы найти дополнительный код отрицательного числа, необходимо воспользоваться его прямым и дополнительным кодами.

Прямой код предполагает приписывание единицы в начале без изменений записи:

A > 0 Aпр = 0A 1010112; Aпр = 01010112
A ≤ 0 Aпр = 1|A| -1010112; Aпр = 11010112

Для записи обратного кода цифры заменяют на противоположное значение, первую единицу от прямого кода оставляют без изменений:

A > 0 Aобр = 0A 1010112; Aобр = 01010112
A ≤ 0 Aобр = 1 A -1010112; Aобр = 10101002

Дополнительный код предполагает использование обратного кода, с той лишь разницей, что к отрицательному числу прибавляют единицу:

A > 0 Aдоп = 0A 1010112; Aдоп = 01010112
A ≤ 0 Aдоп = 1 A + 1 -1010112; Aдоп = 10101012

Применение двоичной системы в информатике

Двоичная система получила особое распространение в программировании цифровых устройств, так как она соответствует требованиям многих технических устройств, поддерживающих два состояния (есть ток, нет тока). Кроме того, является более простой и надежной для кодирования информации. Именно поэтому программный код большей части ЭВМ основан именно на двоичной системе счисления.

Алфавит системы счисления — это перечень символов, используемый в конкретной системе счисления.

Основание системы счисления — это количество символов в её алфавите.

В системах счисления, которые содержат больше \(10\) знаков, после цифры \(9\) начинаются латинские буквы. \(10\), \(11\), \(12\) использовать мы не можем, т. к. это уже числа, а для продолжения алфавита нужны ещё цифры, поэтому было принято использовать латинские буквы.

Это самая распространённая система счисления в мире. Её применяют для повседневного счёта. Для записи чисел используются арабские цифры \(0\), \(1\), \(2\), \(3\), \(4\), \(5\), \(6\), \(7\), \(8\), \(9\).

Любое число позиционной системы счисления можно записать в развёрнутом виде. То есть в виде суммы произведений цифр числа на основание этой системы счисления с соответствующей степенью.

Представим десятичное число \(652,17\) в развёрнутом виде.

Сначала пронумеруем разряды числа, начиная с младшего — единиц. Нумерацию начинаем с \(0\). Цифра \(2\) находится в разряде единиц, ставим над ней \(0\), далее разряд десятков — над цифрой \(5\) ставим \(1\) и т. д.

Запишем сумму произведений цифр числа на основание системы счисления с соответствующей степенью:

652,17 10 = 6 × 10 2 + 5 × 10 1 + 2 × 10 0 + 1 × 10 − 1 + 7 × 10 − 2 .

Двоичные числа получили широкое применение в компьютерной технике. Два значения, используемые в двоичной системе счисления, позволяют идентифицировать два состояния: есть ток (\(1\)), нет тока (\(0\)); использовать булеву алгебру для работы логических устройств; легко производить арифметические операции.

Запишем двоичное число \(111001,101\) в развёрнутом виде.

111001,101 2 = 1 × 2 5 + 1 × 2 4 + 1 × 2 3 + 0 × 2 2 + 0 × 2 1 + 1 × 2 0 + 1 × 2 − 1 + 0 × 2 − 2 + 1 × 2 − 3 .

Восьмеричная и шестнадцатеричная системы счисления

У двоичной системы счисления есть один недостаток. Разряды чисел очень быстро растут. Поэтому в компьютерной технике стали широко применять восьмеричную и шестнадцатеричную системы счисления. Компьютер легко переводит числа из одной системы счисления в другую.

Рассмотрим развёрнутую запись восьмеричного числа \(452,214\).

452,214 8 = 4 × 8 2 + 5 × 8 1 + 2 × 8 0 + 2 × 8 − 1 + 1 × 8 − 2 + 4 × 8 − 3 .

Знание алгоритма записи развёрнутой формы числа пригодится нам в будущем для перевода чисел из любой позиционной системы счисления в десятичную.

Алфавит системы счисления — это перечень символов, используемый в конкретной системе счисления.

Основание системы счисления — это количество символов в её алфавите.

В системах счисления, которые содержат больше \(10\) знаков, после цифры \(9\) начинаются латинские буквы. \(10\), \(11\), \(12\) использовать мы не можем, т. к. это уже числа, а для продолжения алфавита нужны ещё цифры, поэтому было принято использовать латинские буквы.

Это самая распространённая система счисления в мире. Её применяют для повседневного счёта. Для записи чисел используются арабские цифры \(0\), \(1\), \(2\), \(3\), \(4\), \(5\), \(6\), \(7\), \(8\), \(9\).

Любое число позиционной системы счисления можно записать в развёрнутом виде. То есть в виде суммы произведений цифр числа на основание этой системы счисления с соответствующей степенью.

Представим десятичное число \(652,17\) в развёрнутом виде.

Сначала пронумеруем разряды числа, начиная с младшего — единиц. Нумерацию начинаем с \(0\). Цифра \(2\) находится в разряде единиц, ставим над ней \(0\), далее разряд десятков — над цифрой \(5\) ставим \(1\) и т. д.

Запишем сумму произведений цифр числа на основание системы счисления с соответствующей степенью:

652,17 10 = 6 × 10 2 + 5 × 10 1 + 2 × 10 0 + 1 × 10 − 1 + 7 × 10 − 2 .

Двоичные числа получили широкое применение в компьютерной технике. Два значения, используемые в двоичной системе счисления, позволяют идентифицировать два состояния: есть ток (\(1\)), нет тока (\(0\)); использовать булеву алгебру для работы логических устройств; легко производить арифметические операции.

Запишем двоичное число \(111001,101\) в развёрнутом виде.

111001,101 2 = 1 × 2 5 + 1 × 2 4 + 1 × 2 3 + 0 × 2 2 + 0 × 2 1 + 1 × 2 0 + 1 × 2 − 1 + 0 × 2 − 2 + 1 × 2 − 3 .

Восьмеричная и шестнадцатеричная системы счисления

У двоичной системы счисления есть один недостаток. Разряды чисел очень быстро растут. Поэтому в компьютерной технике стали широко применять восьмеричную и шестнадцатеричную системы счисления. Компьютер легко переводит числа из одной системы счисления в другую.

Рассмотрим развёрнутую запись восьмеричного числа \(452,214\).

452,214 8 = 4 × 8 2 + 5 × 8 1 + 2 × 8 0 + 2 × 8 − 1 + 1 × 8 − 2 + 4 × 8 − 3 .

Знание алгоритма записи развёрнутой формы числа пригодится нам в будущем для перевода чисел из любой позиционной системы счисления в десятичную.

Читайте также: