понедельник, 15 сентября 2014 г.

Представление чисел в компьютере. Целые числа и их компьютерный код

2.9.1. Целые числа в компьютере

Каждый элемент ячейки служит для изображения одного разряда двоичного числа. Именно поэтому каждый элемент ячейки называют разрядом
Для компьютерного представления целых чисел обычно используется несколько различных способов представления, отличающихся друг от друга количеством разрядов и наличием или отсутствием знакового разряда. Беззнаковое представление можно использовать только для неотрицательных целых чисел, отрицательные числа можно представлять только в знаковом виде. 
При беззнаковом представлении все разряды ячейки отводятся под само число. При представлении со знаком самый старший (левый) разряд отводится под знак числа, остальные разряды — под число. Если число положительное, то в знаковый разряд помещается 0, если число отрицательное, то 1.

2.9.2. Беззнаковое представление положительных целых чисел в компьютере

Самое большое целое положительное число, которое мы можем записать в k разрядах, состоит из единиц во всех разрядах ячейки. Если перевести это число в десятичную систему счисления, то оно равно 2k – 1. Минимальное число состоит из нулей во всех разрядах и равно 0.
Запишем максимальные числа, которые можно вместить в 8, 16, 32 разрядах.

Количество разрядов Максимальное число
8 28 – 1 = 255
16 216 – 1 = 65535
32 232 – 1 = 4294967295


2.9.3. Знаковое представление целых чисел в компьютере

Чтобы и в компьютере представлять числа в привычном для человека виде, необходимо самый левый разряд ячейки отвести для записи знака числа. При записи положительного числа в самый левый разряд ячейки, который называется знаковым, записывается 0, при записи отрицательного числа 1. То есть при знаковом представлении чисел 0 в самом левом разряде ячейки соответствует знаку плюс, а единица – знаку минус. Очевидно, что модуль числа можно записывать только в оставшихся k – 1 разрядах. Такое представление чисел называется прямым кодом.
Прямой код положительного числа отличается от прямого кода такого же по модуля отрицательного числа только содержанием знакового разряда. Однако для представления отрицательных чисел в компьютере используется дополнительный код(см. ниже).
В k-разрядной ячейке при представлении целых знаковых чисел умещаются числа [-2k –1, 2k–1–1]. Например, для 8-разрядной ячейки это диапазон [-128, 127]. Таким образом, при программировании нужно помнить о том, что:

  • количество представимых чисел в k разрядах ограничено и зависит от k;
  • диапазон знаковых чисел, представимых в k-разрядной ячейке, не симметричен относительно 0.


Запишем максимальные и минимальные числа, которые можно записать в 8, 16 и 32 разрядах при знаковом представлении.
Количество разрядов Минимальное число Максимальное число
8 –27 = –128 27 – 1 = 127
16 –215 = –32768 215 – 1 = 32767
32 –231 = –2147483648 231 – 1 = 2147483647

Комментариев нет:

Отправить комментарий