Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Перевод дробных чисел в двоичную систему счисления

Поиск

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

Переведем число 5.37510 в двоичную систему счисления. Целая часть 510 = 1012. Дробная часть:

0. 375

   * 2

-------------

0. 750

   * 2

-------------

1. 500

   * 2

---------------

1. 000

Выписываем целые части произведений в порядке получения и получаем 0. 0112. Объединяем обе части: 5.37510 = 101.0112.

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

Считается, что в форме с фиксированной точкой десятичная точка зафиксирована после младшего цифрового разряда, т.е. в числе нет дробной части. Целые числа могут занимать в компьютере 1 байт, 2 байта (16 разрядов), 4 байта (32 разряда) или 8 байт (64 разряда).

Разные целочисленные типы отличаются разным диапазоном значений и бывают знаковые (int, short int, long int) и беззнаковые (с модификатором unsigned).

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

Рассмотрим структуру разрядной сетки 2-байтового представления (16 разрядов):

 

Знак

Число в двоичном представлении

                               

Крайний левый разряд содержит знак числа: 0 соответствует положительному числу, 1 – отрицательному, остальные разряды содержат значащую часть числа (самый старший разряд слева).

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

Например, рассмотрим, как число 28 хранится в 16-разрядной ячейке в форме с фиксированной точкой в прямом коде. Двоичное представление десятичного числа 28 имеет вид 2810 = 111002.

Число 28 положительное, поэтому значение первого разряда – 0. Остальные 15 разрядов содержат двоичные цифры, соответствующие числу 28, в нашем случае 0 000000000011100. Поэтому число запишется в ячейку следующим образом:

зн

Число в двоичном представлении

0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0

Такой способ кодирования называется прямым кодом.

Если возьмем отрицательное число, например, -125, то оно в

16-битном формате со знаком запишется так. Первый разряд – 1, так как число отрицательное.

 Двоичное представление числа 

12510 = 11111012. В 16-разрядной ячейке это число в прямом коде будет выглядеть так:

1 000000001111101

зн

Число в двоичном представлении

1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1

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

11110=11011112

В 8 байтовой ячейке: 0 1101111

Число -111 будет представлено:

Прямой          1 1101111

Обратный     1 0010000

                                                +1

Доп-ый       1 0010001

При 2-байтовой кодировке, когда под значащую часть числа отводится 15 разрядов, максимально возможное целое число, которое может поместиться в отведенную ячейку, составляет 215 - 1 = 32767. Число с большим значением не поместится в такую ячейку. В таком случае говорят о переполнении. Переполнение разрядной сетки - это ситуация, когда число, которое требуется сохранить, не умещается в отведенном количестве разрядов памяти вычислительного устройства. Последствия такой ситуации могут быть разными в зависимости от программы, в которой она случилась: от прерывания программы с выводом сообщения об ошибке до получения неверного результата. Переполнение связано с количеством разрядов устройства, выделяемых для хранения числа.

Арифметические действия с целыми числами выполняются точно. Для деления существуют операции определения целой части частного и остатка от деления.



Поделиться:


Познавательные статьи:




Последнее изменение этой страницы: 2020-11-23; просмотров: 2842; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.119.28.173 (0.007 с.)