Мантисса числа, (порядок числа), нормализованная запись числа Нормализованной (экспоненциальной) называется запись отличного от нуля вещественного числа в виде m * Pq, где q – целое число (положительное, отрицательное или ноль) , а m – правильная P-ичная дробь, у которой первая цифра после запятой не равна 0, то есть 1 / P ≤ m < 1. При этом m называется мантиссой числа, а q – порядком числа.
Нормализация мантиссы позволяет сэкономить один разряд в ее двоичном представлении. В обоих случаях заранее известно, что первый значащий разряд равен единице, поэтому его можно не хранить. Иногда это называется использованием неявного старшего бита.
Нормализация мантиссы результата независимо от режима не выполняется.
Нормализация мантиссы результата заключается в повторении операции сдвига мантиссы на один десятичный разряд с обнулением младшего разряда, а также в уменьшении порядка на единицу до тех пор, пока в знаковом разряде К2 ( Д9) не будет находиться наибольшая значащая цифра мантиссы. При переполнении разрядной сетки в области мантиссы выполнение этой процедуры может привести к переполнению разрядной сетки в области порядка.
00111001000100100000000000000000 - нули слева убираем: 111001000100100000000000000000 - нормализуем мантиссу: 1.11001000100100000000000000000 х 2^29.
var A: array[1..nmax] of integer; I, m, s: integer; Am, kon: text;
begin Clrscr; Assign(Am, 'Am.txt');
{раскоментировать для записи массива в файл} {Rewrite(Am); m := Random(nmax - 5) + 5; for i := 1 to m do Writeln(Am, Random(20)); Close(Am);}
{считывание данных из файла} Reset(Am); s := 0; m := 0; while not eof(Am) do begin m := m + 1; Readln(Am, A[m]); s := s + A[m]; end; Close(Am);
Assign(kon, 'kon.txt'); Rewrite(kon);
if s > 50 then Writeln('Сумма элементов массива более 50 и равна: s=', s) Else begin Writeln('Сумма элементов менее 50, вывод исходного массива'); for i := 1 to m do begin Writeln('A[', i, ']=', A[i], ' '); Writeln(kon, 'A[', i, ']=', A[i], ' '); end; end;
Нормализованной (экспоненциальной) называется запись отличного от нуля вещественного числа в виде m * Pq, где q – целое число (положительное, отрицательное или ноль) , а m – правильная P-ичная дробь, у которой первая цифра после запятой не равна 0, то есть 1 / P ≤ m < 1. При этом m называется мантиссой числа, а q – порядком числа.
Нормализация мантиссы позволяет сэкономить один разряд в ее двоичном представлении. В обоих случаях заранее известно, что первый значащий разряд равен единице, поэтому его можно не хранить. Иногда это называется использованием неявного старшего бита.
Нормализация мантиссы результата независимо от режима не выполняется.
Нормализация мантиссы результата заключается в повторении операции сдвига мантиссы на один десятичный разряд с обнулением младшего разряда, а также в уменьшении порядка на единицу до тех пор, пока в знаковом разряде К2 ( Д9) не будет находиться наибольшая значащая цифра мантиссы. При переполнении разрядной сетки в области мантиссы выполнение этой процедуры может привести к переполнению разрядной сетки в области порядка.
00111001000100100000000000000000 - нули слева убираем:111001000100100000000000000000 - нормализуем мантиссу:
1.11001000100100000000000000000 х 2^29.
Теперь мантисса нормализована.
const
nmax = 20;
var
A: array[1..nmax] of integer;
I, m, s: integer;
Am, kon: text;
begin
Clrscr;
Assign(Am, 'Am.txt');
{раскоментировать для записи массива в файл}
{Rewrite(Am);
m := Random(nmax - 5) + 5;
for i := 1 to m do
Writeln(Am, Random(20));
Close(Am);}
{считывание данных из файла}
Reset(Am);
s := 0;
m := 0;
while not eof(Am) do
begin
m := m + 1;
Readln(Am, A[m]);
s := s + A[m];
end;
Close(Am);
Assign(kon, 'kon.txt');
Rewrite(kon);
if s > 50 then
Writeln('Сумма элементов массива более 50 и равна: s=', s)
Else
begin
Writeln('Сумма элементов менее 50, вывод исходного массива');
for i := 1 to m do
begin
Writeln('A[', i, ']=', A[i], ' ');
Writeln(kon, 'A[', i, ']=', A[i], ' ');
end;
end;
Close(kon);
Readkey;
end.