Системы счисления и коды

Автор: Пользователь скрыл имя, 18 Ноября 2010 в 22:44, курсовая работа

Описание работы

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

Содержание

1. Введение 4
2. Постановка задачи 4
3. Правила перевода для разных систем счисления 4
3.1. Правило перевода из шестнадцатеричной в восьмеричную систему счисления 4
3.2. Правило перевода из восьмеричной в шестнадцатеричную систему счисления 5
4. Укрупненная блок-схема 6
4. Подробная блок-схема программы 7
5. Текст программы 16
6. Ручной просчет контрольного примера 21
7. Машинный просчет контрольного примера 21
8. Заключение 22
10. Используемая литература 23

Работа содержит 1 файл

КУРСОВАЯ.DOC

— 1.34 Мб (Скачать)

ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ

Рязанская государственная  радиотехническая академия 
 

Кафедра САПР ВС 
 
 
 
 
 
 
 

Пояснительная записка к курсовому проекту по дисциплине «Информатика» 

тема: «Системы счисления и коды» 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

                      Разработал  ст. гр. 445

                      Бирюков С.А.

                      Проверил

                      Орехов  В.В 
                       
                       
                       

Рязань 2005г. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Оглавление 
 

     1. Введение   4

     2. Постановка задачи   4

     3. Правила перевода для разных  систем счисления   4

     3.1. Правило перевода из шестнадцатеричной в восьмеричную систему счисления   4

     3.2. Правило перевода из восьмеричной в шестнадцатеричную систему счисления  5

     4. Укрупненная блок-схема  6

     4. Подробная блок-схема программы  7

     5. Текст программы  16

     6. Ручной просчет контрольного примера  21

     7. Машинный просчет контрольного примера  21

     8. Заключение 22

     10. Используемая литература  23 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

      1. Введение. 

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

   2. Постановка задачи. 

     Программа должна считывать из файла исходные данные в восьмеричной системе. Затем, следуя заданию, необходимо перевести числа в в шестнадцатеричную систему счисления. В шестнадцатеричной системе счисления числа необходимо сложить и вычесть. Затем результаты этих действий перевести обратно в восьмеричную систему счисления, и вывести в файл. 

      3. Правила перевода для разных систем счисления.  

     Система счисления —  это способ представления чисел посредством  алфавита (конечное множество) символов, называемых цифрами.  

     Например, «обычная» десятичная система счисления имеет алфавит {0;1;...;9}, состоящий из десяти цифр: 0; 1 и т.д. Системы счисления бывают двух видов: позиционные и непозиционные.

     Позиционная система счисления — это такая, в которой одна и та же цифра имеет разные значения в зависимости от ее позиции в числе. Например, десятичная система счисления — позиционная. В десятичном числе 22 первая слева цифра 2 имеет значение 20, а вторая — значение 2.

     Непозиционная система счисления — это такая, в которой одна и та же цифра всегда имеет одинаковое значение, не зависящее от ее позиции в числе. Например, римская система счисления — непозиционная. В римском числе XX обе цифры X имеют значение 10. 

     3.1. Правило перевода из шестнадцатеричной в восьмеричную систему счисления. 

     Оптимальный способ перевода числа из шестнадцатеричной в восьмеричную систему счисления будет следующим. Т.к. шестнадцатеричное число имеет основание системы счисления 16=24, а восьмеричное 8=23, то шестнадцатеричное число переводим в двоичное: каждую цифру заменяем на группу из 4-х двоичных цифр ( тетраду ) соответственно данной таблице: 
 
 
 
 

      

       С и  с т е м а     с ч  и с л е н и я

      

       С и  с т е м а     с ч  и с л е н и я

    2 16 2 16
    0000 0 1000 8
    0001 1 1001 9
    0010 2 1010 A
    0011 3 1011 B
    0100 4 1100 C
    0101 5 1101 D
    0110 6 1110 E
    0111 7 1111 F
    Таблица №1
 

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

      

       С и  с т е м а     с ч  и с л е н и я

      

       С и  с т е м а     с ч  и с л е н и я

    2 8 2 8
    000 0 100 4
    001 1 101 5
    010 2 110 6
    011 3 111 7
    Таблица №2
 

     Например:

       

     3.2. Правило перевода из восьмеричной в шестнадцатеричную систему счисления. 

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

     Затем двоичное число разбивается на тетрады (при необходимости добавить нули справа и слева от числа) которые  заменяются шестнадцатеричными цифрами согласно таблице №1. Например:

       
 
 
 
 
 
 
 
 
 

     4. Укрупненная блок-схема.  
 

     

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

                        
 
 
 
 
 

 
 
 

       
 
 
 
 

       
 
 
 
 
 

       
 
 
 
 

     

        
 
 
 
 

 
 
 
 
 
 

 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

     5. Текст программы.

     uses crt;

     Type

         t1=array[0..100] of real;

         t2=array[0..20] of string;

               {процедура для записи в массив  исходных данных}

     Procedure p8(var dt8:t1;var lc,c:integer;var isx:string);

               var

                b,code,i,a:integer;

                begin

                 a:=length(isx);

                 b:=Pos('.', iSx);

                 if b=0 then b:=Pos(',', iSx);

                 lc:=b-1;

                 for i:=1 to b-1 do

                  begin

                   Val(isx[i],dt8[i],code);

                  end;

                 for i:=b+1 to a do

                       begin

                   Val(isx[i],dt8[i-1],code);

                  end;

                 c:=a-1;

              end;

               {Проседура для перевода из 8-ричной  системы в 16-тиричную}

     Procedure p8v16(var dt8,dt16:t1;var c,obch,dr:integer);

               var

                dt8p,b:t1;

                i,k,d:longint;

                a:real;

               begin

                c:=c-dr+obch;

                for k:=1 to c do

                       begin

                  dt8p[k]:=dt8[c-k+1];

                  b[k]:=round(exp((k-1)*ln(8)))*dt8p[k];

                 end;

                a:=0;

                for k:=1 to c do

                       begin

                  a:=a+b[k];

                 end;

               d:=1;

                repeat

                 dt16[d]:=round((a-16*int(a/16)));

                 a:=int(a/16);d:=d+1;

Информация о работе Системы счисления и коды