Изучение методов перевода чисел из одних систем исчисления в другие (Лабораторная работа № 7), страница 2

Тогда VP= a-1+P-1•(a-2+…), откуда очевидно, что a-1=[VP], Р-1•(a-2+...)={V•Р}, где [VP] и {V•Р} обозначают целую и дробную части V•Р. Умножив {V•Р} на Р и взяв целую часть, получим а-2 и т.д. Например, при V=0.75, Р=3 получим

a-1=[0.75-3]=2, {0.75•3}=0.25, a-2=[0.25•3]=0, {0.25•3}=0.75 и т.д.

Таким образом, троичным представлением 0.75 будет бесконеч­ная периодическая дробь (О.(20))3.

Имея действительное значение V, V<1, можно получить r пер­вых цифр его Р-ичного представления, выполнив алгоритм:

For I := 1 to r do begin

    V := V•P;

    d := trunc ( V ) ;

по значению d построить Р-ичную цифру;

 V:=V-trunc(V)

end.

1.1.3. “1+1 - 10, 5•8 = 28”

Если сложить 1 и 1, то получим 2. Но в двоичной системе 10, т.е. в двоичной системе 1+1=10. При сложении в столбик это означает сумму 0 и перенос 1 в следующий разряд. Сложим столбик 3 и 6 в двоичной системе:

  11

110

1001

В десятичной системе 10+13=23. То же самое в 16-ричной системе выглядит как A+D=17. Вообще, складывая две или больше Р-ичных цифр, в результате получаем:                       (их сумма) modP

с переносом (их сумма) divP. Например, в 16-ричной системе:

       9D

    FАЕ

   104В

(Нетрудно проверить, что при сложении в столбик D+E=1B, 1+9+А=14, 1+F=10.)

Все учатся в школе не только складывать, но и умножать. Если мы умножаем в столбик число в десятичной системе на число, записанное одной цифрой X, то вычисляем произведение очередной цифры числа и X. Остаток от деления этого произведения на 10 прибавляем к переносу от предыдущего разряда и получаем сумму S. Младшую цифру S, т.е. остаток от деления на 10, записываем в результат, а старшую, т.е. Sdiv 10, запоминаем как перенос. И так движемся от младшей цифры сомножителя к старшей. Знакомо, не так ли?

В Р-ичной системе происходит то же самое, только остатки берутся от деления не на 10, а на Р. Например, в 16-ричной системе 5x8 при делении на 16 дает остаток 8 и частное 2, т.е. 5•8=28.

 В восьмеричной системе:

 1234

        7

11104

(4•7 при делении на 8 дает 4 в остатке и 3 в переносе, З•7+3 дает 0 и 3 и т.д.)

Умножение на число, у которого больше одной цифры, сво­дится к умножениям на отдельные цифры, записи результатов со сдвигом и сложению в столбик. Например, в восьмеричной системе:

     77

   123

    275

 176

 77

12155

Аналогично в 16-ричной системе:

      FE

    20A

    9EC

1FC

205EC

1.2. Внутреннее представление данных стандартных типов

1.2.1. Бит, байт и другие единицы измерения

В компьютере числа хранятся и обрабатываются в двоичной сиен счисления. Двоичная цифра 0 или 1 представляется состоянием элемента памяти, который считается неделимым и называется битом. Последовательность  из  8  бит  называется  байтом. Байт свои состояниями представляет 28=256 комбинаций из 0 и 1, а именной

00000000

00000001

…………

11111110

11111111

Множеству этих комбинаций можно взаимно однозначно поставить в соответствие некоторые множества значений: целые числа от -128 до 127, числа от 0 до 255, пары 16-ричных цифр, символы от chr(0) до chr(255) или какие-то другие множества из 256 элементов

В двух соседних байтах представимы 28•28 = 65536 комбинаций из 0 и 1. Им взаимно однозначно соответствуют целые числа до 65535, числа от -32768 до 32767 или другие множества из 65536 элементов.

Аналогично четыре соседних байта отображают (28)4=4294967296 комбинаций из 0 и 1, которым сопоставляются числа от 0  до 4294967295, числа от -2147483648 до 2147483647 или другие множества из 4294967296 элементов.

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