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

      Комментарии к записи Представление числовой информации в компьютере. отключены

n Вся информация в памяти ЭВМ представляется в форме цифрового двоичного кода

n Количество информации, которое помещается в один элемент памяти (0 или 1) называется битом

n 8 бит составляет 1 байт

n Последовательность бит , рассматриваемых аппаратной частью ЭВМ как единое целое называется машинным словом

Компьютер может обрабатывать данные, которые представлены в специальном виде — только с помощью нулей и единиц. Каждый 0 или 1 называют битом. Один бит — это минимальная единица информации, описывающая только 2 возможных состояния. Восемь битов объединяются в байт: 00101011, 00000000, 11111111, 10101010. Байт — основная единица представления информации в компьютере. В итоге вся информация в компьютере представляется как набор огромного (сотни тысяч и миллионы) числа нулей и единиц, разбитых на отдельные байты. Такое представление информации называют цифровым или двоичным. Обработка двоичных данных выполняется с помощью специальных правил, определяемых так называемой двоичной арифметикой.

В зависимости от решаемой задачи байт может содержать закодированное представление различных типов данных.

Простейшим и исторически первым является кодирование целых чисел. Целые числа представляются в двоичном виде следующим образом:

000000002 = 010 000000012 = 110 . . . . . . . . . . 111111112 = 25510

Диапазон целых чисел, кодируемых одним байтом, определяется числом возможных комбинаций из восьми нулей и единиц. Это число равно 28, т.е. 256. Если надо закодировать число больше 255, то два байта объединяются вместе и используется 16 битов. Это дает 216, т.е. 65536 комбинаций. Еще большие целые числа можно представить с помощью 4 байтов или 32 битов. Для представления чисел со знаком один бит отводится под знак.

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

В ЭВМ используются три вида чисел: с фиксированной точкой (запятой), с плавающей точкой (запятой) и двоично-десятичное представление. Точка (запятая) — это подразумеваемая граница целой и дробной частей числа.

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

Если точка фиксируется после последней значащей цифры, то это означает, что п- разрядные двоичные числа являются целыми. Диапазон изменения их значений составляет:

Перед самым старшим из возможных разрядов двоичного числа фиксируется его знак. Положительные числа имеют нулевое значение знакового разряда, отрицательные — единичные.

Другой формой представления чисел является представление их в виде чисел с плавающей точкой (запятой). Числа с плавающей точкой представляются в виде мантиссы ma и порядка рa , иногда это представление называют полулогарифмической формой числа. Например, число A10= 373 можно представить в виде 0.373 • 103, при этом т = 0.373, р = 3, основание системы счисления подразумевается фиксированным и равным десяти. Для двоичных чисел А2 в этом представлении также формируется тa и порядок рa при основании системы счисления равным двум.

что соответствует записи

Порядок числа рa определяет положение точки (запятой) в двоичном числе. Значение порядка лежит в диапазоне –рa max

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

Значение р’a носит название «характеристика числа». Обычно под порядок (модифицированный порядок — характеристику) выделяют один байт. Старший разряд характеристики отводится под знак числа, а семь оставшихся разрядов обеспечивают изменение порядка в диапазоне

Модифицированный порядок р’a вычисляется по зависимости

Этим самым значения р’a формируются в диапазоне положительных чисел

Мантисса числа ma представляется двоичным числом, у которого точка фиксируется перед старшим разрядом, т. е.

где k — число разрядов, отведенных для представления мантиссы.

Если

то старший значащий разряд мантиссы в системе счисления с основанием N отличен от нуля. Такое число называется нормализованным. Например, A2 =(100;0.101101)2 -нормализованное число А2= 1011.01 или А10= 11.25, а то же самое число А2 = (101 ;0.0101101) — число ненормализованное, так как старший разряд мантиссы равен нулю.

Диапазон представления нормализованных чисел с плавающей точкой определяется

где r и k — соответственно количество разрядов, используемых для представления порядка и мантиссы.

Третья форма представления двоичных чисел — двоично-десятичная. Ее появление объясняется следующим. При обработке больших массивов десятичных чисел (например, больших экономических документов) приходится тратить существенное время на перевод этих чисел из десятичной системы счисления в двоичную для последующей обработки и обратно — для вывода результатов. Каждый такой перевод требует выполнения двух — четырех десятков машинных команд. С включением в состав отдельных ЭВМ специальных функциональных блоков или спецпроцессоров десятичной арифметики появляется возможность обрабатывать десятичные числа напрямую, без их преобразования, что сокращает время вычислений. При этом каждая цифра десятичного числа представляется двоичной тетрадой. Например, A10=3759, A2-10= 0011 0111 0101 1001. Положение десятичной точки (запятой), отделяющей целую часть от дробной, обычно заранее фиксируется. Значение знака числа отмечается кодом, отличным от кодов цифр. Например, «+» имеет значение тетрады «1100», а «-» — «1101» [17].

16. Операторы языка С/С++.

Операторы управляют процессом выполнения программы. Набор операторов языка C++ содержит все управляющие конструкции структурного программирования.

Составной оператор ограничивается фигурными скобками. Все другие операторы заканчиваются точкой с запятой.

Пустой оператор – ;

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

Составной оператор – {…}

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

Оператор обработки исключений

try {}

catch () {}

catch () {}

catch () {}

Условный оператор

if ()[else ]

Оператор-переключатель

switch ()

{ case :

case :

case :

[default: ]

}

Оператор-переключатель предназначен для выбора одного из нескольких альтернативных путей выполнения программы. Вычисление оператора-переключателя начинается с вычисления , после чего управление передается , помеченному , равным вычисленному значению . Выход из оператора-переключателя осуществляется оператором break. Если значениене равно ни одному , то управление передается , помеченному ключевым словом default, если он есть.

Оператор цикла с предусловием

while ()

Оператор цикла с постусловием

dowhile ;

В языке C++ этот оператор отличается от классической реализации цикла с постусловием тем, что при истинностипроисходит продолжение работы цикла, а не выход из цикла.

Оператор пошагового цикла

for ([];

[];

[])

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

Оператор пошагового цикла в языке C++ является гибкой и удобной конструкцией, поэтому оператор цикла с предусловием while используется в языке C++ крайне редко, т.к. в большинстве случаев удобнее пользоваться оператором for.

Оператор разрыва

break;

Оператор разрыва прерывает выполнение операторов while, do, for и switch. Он может содержаться только в теле этих операторов. Управление передается оператору программы, следующему за прерванным. Если оператор разрыва записан внутри вложенных операторов while, do, for, switch, то он завершает только непосредственно охватывающий его оператор.

Оператор продолжения

continue;

Оператор продолжения передает управление на следующую итерацию в операторах цикла while, do, for. Он может содержаться только в теле этих операторов. В операторах do и while следующая итерация начинается с вычисления условного выражения. В операторе for следующая итерация начинается с вычисления выражения приращения, а затем происходит вычисление условного выражения.

Оператор возврата

return [];

Оператора возврата заканчивает выполнение функции, в которой он содержится, и возвращает управление в вызывающую функцию. Управление передается в точку вызывающей функции, непосредственно следующую за оператором вызова. Значение , если она задано, вычисляется, приводится к типу, объявленному для функции, содержащей оператор возврата, и возвращается в вызывающую функцию. Еслиопущено, то возвращаемое функцией значение не определено.

С формальной точки зрения операторы break, continue и return не являются операторами структурного программирования. Однако их использование в ограниченных количествах оправдано, когда они упрощают понимание программы и позволяют избегать больших вложенных структур. Например, мы проверяем входные данные на аномалии. Если не использовать эти операторы, то всю обработку придется вложить в условный блок, что ухудшает читабельность программы. Вместо этого можно написать небольшой условный блок, который организует выход из функции при неверных исходных данных.

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

Статьи к прочтению:

Числовые ряды. Основные понятия — bezbotvy


Похожие статьи: