2.5.1.    Представление данных в дискретных системах

Цифровые компьютеры хранят и вызывают числа, к сожалению, эти процессы не обходятся без ошибок. Например, вы пробуете запомнить на компьютере число 1.41421356. Лучшее, что может сделать компьютер, это сохранить ближайшее к нему число, которое он может представить: 1.41421354. Во многих случаях эта ошибка незначительна, в других она может оказаться катастрофической. Другим примером является классическая ошибка вычисления при сложении двух чисел с несоразмерно различными значениями, например, 1 и 0.00000001. Мы бы хотели получить ответ: 1.00000001, но компьютер ответит: 1. Понимание того, как компьютер хранит и обращается с числами поможет предвидеть и устранить эти проблемы перед тем, как программа выдаст бессмысленные данные.

Эти проблемы возникают из-за того, что число представляется фиксированным числом бит, обычно 8, 16, 32 или 64. Например, представьте, что для хранения числа используется 8-битная переменная. Имеется 28 = 256 возможных битовых комбинаций, поэтому переменная может содержать только 256 различных значений. Это фундаментальное ограничение, и мы ничего не можем сделать с этим. Частично мы можем кон

тролировать, какие значения соответствуют различным битовым комбинациям. В простейшем случае битовые комбинации могут представлять числа от 0 до 255, от 1 до 256, от -127 до +128 и т.п. Более редкий случай, когда 256 битовых комбинаций могут представлять 256 экспоненциально связанных чисел: 1, 10, 100, 1000, …, 10254, 10255. Каждый, кто обращается к данным, должен понимать, что представляют битовые маски. Обычно это обеспечивается алгоритмом или формулой преобразования между представляемым значением и битовой комбинацией, и обратно.

В то время как существует множество схем кодирования, основными являются только две: фиксированная запятая (также называемая целыми числами) и плавающая запятая (также называемая вещественными числами). В этом пособии в программах на языке BASIC для обозначения целых чисел используется символ «%» в конце имени переменной, например: 1%, N%, SUM%. Все другие переменные хранят вещественные числа, например: X, Y, MEAN и др. Далее при оценке форматов попытайтесь понять их в терминах их диапазона (максимального и минимального значений, которые они могут представлять) и точности (интервала между числами).