59. Позиционные системы счисления. Перевод целых и дробных чисел  из десятичной системы счисления   . Перевод целых и дробных чисел  в десятичную систему счисления.  . Пример в MS Exсel.

Система счисления это определенный способ представления чисел и соответствующие ему правила действия над числами. Сущность позиционного представления чисел отражается в развернутой форме записи чисел

  ab  = an bn + an-1 bn-1 + . . . + a1 b1 + a0 b0 + a-1 b-1 + . . .  a-m b-m,

где {а }  - алфавит системы счисления, iпозиция,   b - основание системы, …, b-2 , b-1 , 1, b, b2 , b3 , …, bn , … базис            

Перевод чисел из произвольной системы счисления в десятичную (b=10) 

Такой перевод осуществляется по правилам десятичной с помощью формулы

   ab  = an bn + an-1 bn-1 + . . . + a1 b1 + a0 b0 + a-1 b-1 + . . .  a-m b-m,   

Пример. 1011101- >Х10          

10111012 =1*26 + 0*25 + 1*24 + 1*23 + 1*22 +0*2 + 1*20 =64+16+8+4+1=9310 

Ответ: 9310

Как пеpевести правильную конечную b-ичную дpобь в десятичную?

По схеме Горнера a=(((( a-m b-1  + a-m+1 )*b-1+… a-3 )*b-1 + a-2 )*b-1  + a-1)* b-1

Дана правильная конечная дробь =0,a-1a-2…a-m

Требуется получить запись этой дроби в десятичной системе счисления. Для решения этой задачи представим дробь в развернутой форме

 a = a-1 b-1+a-2 b-2 +a-3 b-3 +…a-m+1 b-m+1+ a-m b-m  =   

=(((( a-m b-1  + a-m+1 )*b-1+… a-3 )*b-1 + a-2 )*b-1  + a-1)* b-1

Данное выражение называется схемой Горнера для вычисления значения b-ичной дроби в десятичной системе счисления (цифры в дроби по Горнеру нужно выписывать в обратном порядке))

Алгоритм. Для того, чтобы исходную, правильную дробь

0,a-1a-2…a-m заменить равной ее правильной десятичной дробью, необходимо

  1. Получить a-m b-1  , для этого цифру младшего разряда дроби разделить на основание b, по правилам десятичной арифметики
  2. Получить (a-m b-1  + a-m+1 ), для этого к полученному частному прибавить цифру следующего (более старшего разряда)
  3. Получить ( a-m b-1  + a-m+1 )*b-1 для этого с полученной суммой, как с первой взятой цифрой, смотри пункт 1
  4. Эти операции продолжать до тех пор, пока не будет прибавлена цифра старшего разряда искомой дроби ((( a-m b-1  + a-m+1 )*b-1+… a-3 )*b-1 + a-2 )*b-1  + a-1)   
  5. Получить (((( a-m b-1  + a-m+1 )*b-1+… a-3 )*b-1 + a-2 )*b-1  + a-1)* b-1 , для этого полученную сумму разделить еще раз на b

Пример. Перевести в десятичную систему дроби

 

1) 0,11012=X10

(рассматриваем цифры в обратном порядке)

1:2=0,5

0,5+0=0,5

0,5:2=0,25

0,25+1=1,25

1,25:2=0,625

0,625+1=1,625

1,625:2=0,8125

Ответ: 0,11012= 0,812510

2) 0,3568=0,X10

(рассматриваем цифры в обратном порядке)

6:8=0,75

0,75+5=5,75

5,75:8=0,371875

0,371875+3=3,371875

3,371875:8=0,46484375

Ответ: 0,3568=0,4648437510

3) 0,A6E16=0,X10

(рассматриваем цифры в обратном порядке)

14:16=0,875

0,875+6=6,875

6,875:16=0,4296875

0,4296875+10=10,4296875

10,4296875:16=0,65185546875

Ответ: 0,A6E16=0,6518554687510

Как перевести целое число из десятичной системы (b=10) в любую другую позиционную систему счисления?

Теорема:  Преобразование чисел из десятичной системы счисления в систему счисления с основанием b производится последовательным делением исходного числа на основание системы b по правилам b- арифметики, пока частное не станет равным 0. Это деление в остатках дает запись числа-ответа в соответствующей системе, но в обратном порядке: от младшей цифры к старшей.

Пример. Перевести число 75 из десятичной системы в двоичную, восьмеричную и шестнадцатеричную:

 

Ответ: 7510 = 10010112 = 1138 = 4B16.

Как перевести правильную десятичную дробь  z=0,z-1z-2…z-m  в любую другую позиционную систему счисления?

По формуле с выделением целой части. z*b=a-1+a-2 b-1 +a-3 b-2 +…a-m b-m+2+ a-m b-m+1 

Алгоритм. Для того, чтобы исходную десятичную правильную дробь 0,z-1z-2…z-m заменить равной ее правильной дробью 0,a-1a-2…a-m, нужно

1. 0,z-1z-2…z-m умножить на основание b, по правилам десятичной арифметики, целую часть полученного произведения считать цифрой старшего разряда искомой дроби

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

Пункт 2 повторять до тех пор, пока дробная часть не окажется равной нулю, либо будет достигнута требуемая точность.

Пример. Перевести число 0,35 из десятичной системы в двоичную, восьмеричную и шестнадцатеричную:

 

Ответ: 0,3510 = 0,010112 = 0,2638 = 0,5916 .

 

Перевод чисел  с применением MS Exсel.

   

 

 

Конструктор сайтов - uCoz