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

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 битов. Для представления чисел со знаком один бит отводится под знак.

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

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

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

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

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

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

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

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

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

Порядок числа рa определяет положение точки (запятой) в двоичном числе. Значение порядка лежит в диапазоне –рa max <=рa<=рa max , где величина pamах определяется числом разрядов к, отведенных для представления порядка Представление числовой информации в компьютере. - student2.ru

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

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

Модифицированный порядок р'a вычисляется по зависимости Представление числовой информации в компьютере. - student2.ru

Этим самым значения р'a формируются в диапазоне положительных чисел Представление числовой информации в компьютере. - student2.ru

Мантисса числа ma представляется двоичным числом, у которого точка фиксируется перед старшим разрядом, т. е. Представление числовой информации в компьютере. - student2.ru

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

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

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

Диапазон представления нормализованных чисел с плавающей точкой определяется Представление числовой информации в компьютере. - student2.ru

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

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

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

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

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

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

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

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

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

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

try { <операторы> }

catch (<объявление исключения>) { <операторы> }

catch (<объявление исключения>) { <операторы> }

...

catch (<объявление исключения>) { <операторы> }

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

if (<выражение>) <оператор 1> [else <оператор 2>]

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

switch (<выражение>)

{ case <константное выражение 1>: <операторы 1>

case <константное выражение 2>: <операторы 2>

...

case <константное выражение N>: <операторы N>

[default: <операторы>]

}

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

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

while (<выражение>) <оператор>

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

do <оператор> while <выражение>;

В языке 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++, а осуществляется функциями, входящими в состав стандартной библиотеки. Для подробной информации .

Наши рекомендации