Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Представление целых чисел со знаком




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

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

 
 

 


–-
0

              b
                b
                b

Мы получили число -1 в двоичном дополнительном коде. Чтобы убедится, что это в самом деле -1, сложим это число с 1:

 
 


+
1

              b
                b
                b

Как и следовало ожидать мы снова получили 0.

При записи числа в дополнительном коде старший разряд является знаковым. Если его значение равно 0, то в остальных разрядах записано положительное двоичное число. Если же знаковый разряд равен 1, то в остальных разрядах записано отрицательное двоичное число, преобразованное в дополнительный код.

Посмотрим, как представляется первые последовательные числа при переходе через ноль (для чисел записанных в восьмиразрядную решетку):

  0000 0000
-1 1111 1111
-2 1111 1110
-3 1111 1101
-4 1111 1100
-5 1111 1011

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

Получим отрицательное число −5, записанное в дополнительном коде.

Запишем 5 в двоичном виде, дописывая недостающие нули слева:

0000 0101

Инвертируем все разряды числа, получая таким образом обратный код:

1111 1010

Добавим к результату 1, получим искомый результат (−5 в дополнительном коде)

1111 1010 + 1 = 1111 1011

Для обратного преобразования используется тот же алгоритм. А именно:

Инвертируем все разряды числа

0000 0100

Добавим к результату 1 и получим снова положительное число 5

0000 0100 + 1 = 0000 0101

Числа с плавающей запятой (точкой)

В форме с плавающей запятой число представляется двумя компонентами: мантиссой и порядком. Мантисса используется для записи цифр числа, а порядок – для указания положения запятой.

Разрядная сетка машины в этом случае делится на несколько частей:

- один разряд – для кодирования знака числа (это всегда самый старший, левый, разряд слова);

- M разрядов – для записи мантиссы;

- Р разрядов – для записи порядка (с учетом его знака).

Местоположение запятой при этом тоже строго фиксируется: считается, что мантисса всегда представляется как число, меньшее единицы, но такое, в котором первая цифра после запятой для всех абсолютно чисел отлична от нуля (единственное исключение составляет число 0). Такая форма представления мантиссы называется нормализованной. Иначе говорят, что мантисса нормализована (приведена к виду: 1 < M <= 0,1).

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

Рассмотренная форма кодирования числа приводит к следующим последствиям:

- Диапазон чисел, представимых в форме с плавающей запятой, определяется главным образом разрядностью порядка (Р).

- Разрядность мантиссы (М) определяет точное количество значащих цифр в изображении числа.

 

 

     

 

       
 
Порядок
 
Абсолютная величина мантисы
 


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

 

Число 6.25

Преобразуем в двоичный вид

25

41+
6.25 = = = 11001b*2-2

 

Нормализуем, т.е. записываем в виде M * 2p, где 1 < M <= 0,1. Для нашего случая первую часть выражения (мантиссу) умножаем на 2-5, а вторую на 25

11001b*2-2 = 11001b * 2-5 *2-2 * 25 = 0.11001b*23 = 0.11001b*211b

Выпишем представление числа в памяти.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
    0           1                                              

 

       
 
   
Абсолютная величина мантиссы, 23 бита
 


Число –0.125

 
 
1


841+
–0.125 = – = –1*2-3

Нормализуем

–1*2-3 = –0.1*2-2

Отрицательный порядок записываем в дополнительном коде:

–0.1*2-2 = –0.1*2111111101

 

Теперь размещаем число в нашем четырехбайтовом формате

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
    1           1                                              

 

       
 
   
Абсолютная величина мантиссы, 23 бита
 

 

 






Поделиться с друзьями:


Дата добавления: 2015-11-05; Мы поможем в написании ваших работ!; просмотров: 922 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Своим успехом я обязана тому, что никогда не оправдывалась и не принимала оправданий от других. © Флоренс Найтингейл
==> читать все изречения...

2351 - | 2156 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.