Кодирование числовой информации

Кодирование числовой информации

Введение

Если у вас возникли какие-либо вопросы при изучении темы «Кодирование числовой информации», то звоните мне и записывайтесь на первый репетиторский урок по информатике и ИКТ. На моих индивидуальных уроках мы с вами закроем текущие пробелы в ваших знаниях и прорешаем колоссальное количество всевозможных тематических упражнений.

Общие понятие о числовой информации

Думаю, что превалирующее число школьников и студентов знает фразу: «Математика – царица всех наук!». А как известно, математика очень интенсивно оперирует числами, цифрами и действиями над числами.

Первый счет появился много тысячелетий назад, так как даже в очень древние времена люди столкнулись с потребностью в счете. Его возникновение связано с желанием человека проинформировать своих соплеменников о количестве обнаруженных им объектов, предметов. По началу люди просто делили предметы по принципу один-много. То есть не было обозначения для двух, трех, десяти и более различных предметов. Их просто обозначали в количественном отношении как много.

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

Вернемся в настоящий временной континуум. Для современного человека знания, позволяющие считать предметы и записывать числа, являются обязательными. Арифметика изучается в школе с первого класса. Цифры, используя которые мы записываем числа, называются арабскими. Алфавит арабских цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Всего десять различных цифр или состояний.

Числа можно классифицировать на две фундаментальные группы:

  • Целые числа.

  • Дробные или действительные числа.

Каждое число из представленных групп может быть либо:

  • Положительным

  • Отрицательным

  • Равным нулю

Примеры различных десятичных чисел:

  • -56         - целое отрицательное число;

  • 12.78     - действительное положительное число;

  • 0.0         - действительное число, равное нулю;

  • 12000    - целое положительное число.

Наша цель – понять, каким образом производится кодирование числовой информации, выраженной целыми или дробными числами, которые являются положительными, отрицательными или равными нулю. Другими словами, мы должны понять, как персональный компьютер хранит, обрабатывает, копирует числа на «своем» уровне.

Свойства числовой информации

  1. Конечность. Информация, выраженная числовым значением, должна быть конечной. Процессор персонального компьютера не сможет обработать число, которое не является конечным или завершенным. То есть прежде чем приступить к кодированию числовой информации, процессор должен быть уверен, что данное значение записано полностью и не будет изменено пользователем.

  2. Понятность. Если мы говорим о кодировании числовой информации, которая представлена десятичным числом, то необходимо, чтобы само число состояло из элементов, которые будут понятны исполнителю при кодировании. Исполнителем является, в строгом приближении, процессор персонального компьютера. Например, число 129 состоит из трех цифр: 1, 2 и 9. Каждое из этих цифр входит в состав арабского алфавита. Если мы представим числовую информацию в виде значения 89J1’4, то подобное значение будет некорректно обработано процессором и он выдаст исключение, то есть сгенерирует ошибку. Почему? Потому что входное число 89J1’4 состоит из элементов: 8, 9, J, 1, ‘, 4, не каждое из которых входит в состав арабского алфавита. Например, элементы J и ‘ не являются арабскими цифрами.

Приведенные два свойства являются ключевыми в алгоритмах кодирования числовой информации. Пожалуй, еще стоит отметить неосновное свойство – размер числа. Но в современном мире мощности персональных компьютеров постоянно увеличиваются и самые эффективные процессоры способы обрабатывать огромные значения.

Способы кодирования числовой информации

Сразу необходимо твердо уяснить следующее: процессор персонального компьютера взаимодействует с любыми данными исключительно на уровне цепочек, состоящих из 0 и 1. Набор нулей и единиц называют двоичным или бинарным кодом. То есть любые текстовые, символьные или числовые значения, которые понятны простому человеку, процессор преобразует в двоичный код. Следовательно, наша задача – научиться переводить числовые значения в бинарное представление, состоящее из цепочек 0 и 1.

Для полного осознания алгоритма кодирования числовой информации необходимо очень хорошо уяснить понятие «Машинное слово». Возможно вы слышали, что иногда пользователи говорят, что на их компьютерах установлена 32-х разрядная или 64-х разрядная система Microsoft Windows. Именно значение разрядности (в приведенном примере это 32 или 64) и отвечает за то, сколько бит информации будет выделено для хранения какого-либо математического значения при кодировании числовой информации. То есть, если нам дано положительное целое число 25, то при преобразовании его в бинарный код, ему будет выделено 32 или 64 бита. Также напомню, что один байт информации состоит из 8 битов.

Далее по тексту я буду работать на уровне 16-и разрядной системы. То есть любое кодирование числовой информации будет представлено с использованием машинного слова в 16 бит.

Кодирование целых положительных чисел

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

Исходное десятичное число

Закодированное десятичное число в двоичном коде

5

0000 0000 0000 0101

27

0000 0000 0001 1011

870

0000 0011 0110 0110

19265

0100 1011 0100 0001

 

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

Нули, которые идут слева до первой единицы, считаются незначимыми, так как они не влияют на закодированное значение и при записи бинарного кода, например в тетрадь, они как правило не выписываются. То есть двоичное представление числа 5 обычно выписывают в формате 101. Но при этом вы должны обязательно понимать, с какой длиной машинного слова было выполнено данное преобразование. В нашем примере длина машинного слова составляет 16 бит.

Кодирование целых отрицательных чисел

Отрицательное число отличается от положительного только наличием специального символа ‘-‘, который ставится перед началом записи числового значения. Примеры отрицательных целых чисел: -20, -3, -189.

Наша задача – понять, каким образом процессор кодирует отрицательность числовых значений. Для этого нужно вспомнить, что такое старший разряд. Старший разряд – это самый левый разряд в записи двоичного числа. Именно данный разряд играет ключевую роль при кодировании отрицательных чисел.

Фундаментальное правило: старший или самый левый разряд числа при двоичном кодировании числовой информации отводится под знак числа, а остальные разряды под хранение самого значения числа. Если старший бит имеет значение 0 – показатель кодирования положительного числа, а если имеет значение 1 – показатель кодирования отрицательного числа. Все просто!

Ниже я приведу таблицу, в которой покажу кодирование целых отрицательных чисел различной значности:

Исходное десятичное число

Закодированное десятичное число в двоичном коде

-5

1000 0000 0000 0101

-27

1000 0000 0001 1011

-870

1000 0011 0110 0110

-19265

1100 1011 0100 0001

 

Если пока все понятно, то двигаемся дальше!

Представьте, что перед вами лежит листок бумаги, на котором записан следующий бинарный код: 1000 0001 0100 0111 и вас просят назвать, какое десятичное число здесь закодировано. В первую очередь вам нужно посмотреть на значение старшего разряда. Видно, что оно равно 1. Вы делаете умозаключение, что этот бит показывает то, что перед вами отрицательное целое число. Сделав перевод в десятичную систему счисления вы получаете значение -327.

Но где гарантии, что перед вами не закодировано какое-то огромное положительное значение. Попробуйте взять число 33095 и перевести его в бинарное представление. После кодирования мы получаем значение 1000 0001 0100 0111 равное заданному, которое было записано на листке бумаги. Странно, не правда ли?!

То есть получается нельзя однозначно сказать, какое целое число закодировано набором 1000 0001 0100 0111? Мы только что с вами получили два различных значения: -327 и 33095. На самом деле можно! Для этого вам следует уточнить у автора задания следующую информацию: положительное или отрицательное число записано в представленном бинарном коде.

Парадоксальность ситуации заключается еще в том, что процессор персонального компьютера для хранения отрицательных целых чисел использует специальную форму представления. Чтобы получить бинарный код отрицательного целого числа необходимо прибегнуть к обратному и дополнительному коду чисел. В данной статье об дополнительном и обратном коде повествования не ведется. Также можно постулировать, что все выше проведенные выкладки, справедливы для прямого кода представления двоичных чисел.

Если у вас остались какие-либо вопросы по кодированию числовой информации, то записывайтесь ко мне на индивидуальный урок по информатике. На данном уроке мы с вами дополнительно рассмотрим такие понятия, как: дополнительный код, обратный код, а также научимся кодировать дробные числовые величины.

 
 
 
 
Авторизация на сайте
 
 
 
Обнаружили
ошибку на сайте?
Занятия по информатике