КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ.
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

МИНИСТЕРСТВО ОБРАЗОВАНИЯ

РОССИЙСКОЙ ФЕДЕРАЦИИ.

ИРКУТСКИЙ ГОСУДАРСТВЕННЫЙ

ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ.

ФАКУЛЬТЕТ КИБЕРНЕТИКИ.

КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ.

Курсовая работа по информатике

На тему:

Системы счисления, переводы чисел.

 

Выполнил: студент Иванов Д. Г.

Группы ЭВМ 05-3

Проверил: Горохов А.Г.

 

ИРКУТСК 2006 г

Оглавление.

Оглавление………………………………………………………………………..1

Глава 1.История развития систем счисления……..………………………..2

1.1 Зарождение систем счисления………………………………………………2

1.2 Образование десятичной системы счисления……………………………....4

Глава 2. Системы счисления…………….…………………………………..5

2.1 Позиционные и непозиционные системы счисления………………………5

2.2 Двоичная(бинарная) система счисления…………………………………….6

2.3. Восьмеричная система счисления…………………………………………..6

2.4. Десятеричная система счисления…………………………………………...6

2.5. Шестнадцатеричная система счисления……………………………………7

Глава 3. Представление чисел в ЭВМ…………………………………..8

3.1 Представление чисел с фиксированной и плавающей запятой.………...…8

3.2 Числа с фиксированной запятой…………………………………………….8

3.3 Числа с плавающей запятой…………………………………………………9

3.3 Прямой, обратный и дополнительный коды. Модифицированный код…10

Глава 4. Перевод чисел…………………………………………………...13

4.1 Представление двоичных чисел и перевод их в десятичные…………….13

4.2 Преобразование десятичных чисел в двоичные…………………………..13

4.2.1 Метод деления……………………………………………………………..13

4.2.2 Метод умножения………………………………………………………….14

5.Постановка задачи………………………………………………………15

6.Внешнее проектирование программы…………………………………15

7.Математическая модель………………………………………………...16

8.Кодирование и отладка программы….……………………………...…17

9.Таблица тестов…………………………………………………………..23

10.Список литературы………………………………………..…………..24

 

Глава 1.История развития систем счисления.                                                           

    1.1 Зарождение систем счисления.

На ранних ступенях развития общества люди почти не умели считать. Они отличали друг от друга совокупности двух и трех предметов; всякая совокупность, содержавшая большее число предметов, объединялась в понятии «много». Это был еще не счет, а лишь его зародыш.

    Впоследствии способность различать друг от друга небольшие совокупности развивалась; возникли слова для обозначений понятий «четыре», «пять», «шесть», «семь». Последнее слово длительное время обозначало также неопределенно большое количество.

    С усложнением хозяйственной деятельности людей понадобилось вести счет в более обширных пределах. Для этого человек пользовался окружавшими его предметами, как инструментами счета: он делал зарубки на палках и на деревьях, завязывал узлы на веревках, складывал камешки в кучки и т.п. Это удобно, так как сразу визуально определяется количество знаков и сопоставляется с количеством предметов, которые эти знаки обозначают. Все мы ходили в первый класс и считали там на счетных палочках – это отзвук той далекой эпохи. Кстати, от счета с помощью камешков ведут свое начало различные усовершенствованные инструменты, как, например, русские счеты, китайские счеты («сван-пан»), древнеегипетский «абак» (доска, разделенная на полосы, куда клались жетоны). Аналогичные инструменты существовали у многих народов. Более того, в латинском языке понятие «счет» выражается словом «calculatio» (отсюда наше слово «калькуляция»); а происходит оно от слова «calculus», означающего «камешек».

    Особо важную роль играл природный инструмент человека – его пальцы. Этот инструмент не мог длительно хранить результат счета, но зато всегда был «под рукой» и отличался большой подвижностью. Язык первобытного человека был беден; жесты возмещали недостаток слов, и числа, для которых еще не было названий, «показывались» на пальцах.

    Поэтому, вполне естественно, что вновь возникавшие названия «больших» чисел часто строились на основе числа 10 – по количеству пальцев на руках; у некоторых народов возникали также названия чисел на основе числа 5 – по количеству пальцев на одной руке или на основе числа 20 – по количеству пальцев на руках и ногах.

    На первых порах расширение запаса чисел происходило медленно. Сначала люди овладели счетом в пределах нескольких десятков и лишь позднее дошли до сотни. У многих народов число 40 долгое время было пределом счета и названием неопределенно большого количества. В русском языке слово «сороконожка» имеет смысл «многоножка»; выражение «сорок сороков» означало в старину число, превосходящее всякое воображение.

    На следующей ступени счет достигает нового предела: десяти десятков, и создается название для числа 100. Вместе с тем слово «сто» приобретает смысл неопределенно большого числа. Такой же смысл приобретают потом последовательно числа тысяча, десять тысяч (в старину это число называлось «тьма»), миллион.

    На современном этапе границы счета определены термином «бесконечность», который не обозначает, какое либо конкретное число.

 

Обозначение чисел в разных системах счисления

 

Образование десятичной системы счисления.

    В современном русском языке, а также в языках других народов названия всех чисел до миллиона составляются из 37 слов, обозначающих числа 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 , 12, 13, 14, 15, 16, 17, 18, 19, 20, 30, 40, 50, 60, 70, 80, 90, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000 (например, восемьсот пятнадцать тысяч триста девяносто четыре). В свою очередь названия этих 37 чисел, как правило, образованы из названий чисел первого десятка (1, 2, 3, 4, 5, 6, 7, 8, 9) и чисел 10, 100, 1000 (например, 18 = восемь на десять, 30 = тридесять и т.д.). В основе этого словообразования лежит число десять, и поэтому наша система наименований называется десятичной системой счисления.

    Из упомянутого правила в разных языках имеются различные исключения, объясняющиеся историческими особенностями развития счета. В русском языке единственным исключением является наименование «сорок». Это исключение можно поставить в связь с тем, что число 40 играло некогда особую роль, означая неопределенно большое количество.

    В тюркских языках (узбекском, казахском, татарском, башкирском, турецком и др.) исключение составляют наименования чисел 20, 30, 40, 50, тогда как названия чисел 60, 70, 80, 90 образованы из наименований для 6, 7, 8, 9. Во французском языке сохранились недесятичные названия чисел 20 и 80, причем 80 именуется quatrevingt, т.е. «четыре двадцать». Здесь мы имеем остаток древнего двадцатеричного счисления (по числу пальцев на руках и ногах). В латинском языке наименование числа 20 тоже недесятичное (viginti). Наименования чисел 18 и 19 образованы из названия 20 с помощью вычитания: 20–2 и 20–1 (duodeviginti, undeviginti, т.е. «два от двадцати», «один от двадцати»).

 

Глава 2. Системы счисления.

    2.1 Позиционные и непозиционные системы счисления.

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

Системы счисления делятся на два класса позиционные и непозиционные.

В непозиционных системах любое число определяется как некоторая функция от численных значений совокупности цифр, представляющих это число. Простейшая, но абсолютно неудобная система счисления. Основана на единственной цифре – единице (палочке). Позволяет записывать только натуральные числа. Чтобы представить число в этой системе счисления нужно записать столько палочек, каково само число. Использовалась нецивилизованными племенами, потребности которых в счете, как правило, не выходили за рамки первого десятка. Чисто формально единичную систему счисления можно отнести к числу основных (с основанием 1). Но, в отличие от остальных основных систем счисления, считать ее позиционной можно лишь с очень сильной натяжкой, а универсальной она вообще не является (в ней нельзя представить ноль, дроби и отрицательные числа). Римская система счисления. С помощью семи цифр – I=1 , V=5 , X=10 , L=50 , C=100 , D=500 , M=1000 – можно весьма успешно и довольно выразительно представлять натуральные числа в диапазоне до нескольких тысяч.

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

В вычислительной технике непозиционные системы не применяются, но продолжают ограниченно использоваться для указания порядковых числительных (часов, столетий, номеров съездов или конференций и т.п.).

Позиционная система счисления – система счисления, в которой вес цифры меняется с изменением положения цифры в числе, но при этом полностью определяется написанием цифры и местом, которое она занимает. В частности, это означает, что вес цифры не зависит от значений окружающих ее цифр. Такая система счисления основывается на том, что некоторое число n единиц ( основание системы счисления ) объединяются в одну единицу второго разряда, n единиц второго разряда объединяются в одну единицу третьего разряда и т. д. Основанием систем счисления может быть любое число, больше единицы. К числу таких систем относится современная десятичная система счисления ( с основанием n=10 ). В ней для обозначения первых десяти чисел служат цифры 0,1,…,9.

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

В отличии от непозиционной системы счисления, позиционная система счисления применяется в ЭВМ.

Числа с плавающей запятой.

 

При использовании плавающей запятой число состоит из двух частей: мантиссы m, содержащей значащие цифры числа, и порядка p, показывающего степень, в которую надо возвести основание числа q, чтобы полученное при этом число, умноженное на мантиссу, давало истинное значение представляемого числа:

                                                                                       (5.1)

Мантисса и порядок представляются в двоичном коде. Обычно число дается в нормализованном виде, когда его мантисса является правильной дробью, причем первая значащая цифра (единица) следует непосредственно после запятой: например,  где m=0,1010; p =10; q =2

Порядок указывает действительное положение запятой в числе. Код в приведенном формате представляет значение числа в полулогарифмической форме: .

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

Нормализованные двоичные числа с плавающей запятой представляют значения модуля в диапазоне:

,

где  – максимальное значение модуля порядка.

Так, при p=7 –1= =63 и диапазон представления модулей нормализованных чисел:

,

                                        

Таким образом, диапазон чисел:

   

Для расширения диапазона представляемых чисел при фиксированной длине разрядной сетки (m + p) в качестве основания системы счисления выбирается . При этом число, представляемое в разрядной сетке, приобретает значения . Нормализованная мантисса 16-ричного числа с плавающей запятой имеет значения, лежащее в диапазоне . Признаком нормализации такого числа является наличие хотя бы одной единицы в четырех старших разрядах модуля мантиссы. Диапазон представления чисел в этом случае существенно расширяется, находясь при том же количестве разрядов в пределах от  до .

m m – 1                                                            1     p  p – 1                              1

        …        

 

Знак                                 Модуль мантиссы                       Знак           Модуль порядка

числа                                                                                       порядка

Глава 4. Перевод чисел.

Метод деления

        

Другим методом является так называемый метод деления. Он применяется для преобразования целых чисел. Ниже приведен его алгоритм.

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

 

Пример 4.3 Перевод десятичного числа  в двоичное методом деления

2                
 148 74 2              
1  74 37 2            
  0  36 18 2          
    1  18 9 2        
      0  8 4 2      
        1  4 2 2    
          0  2 1 2  
            0  0 0  
              1   старший разряд

(10010101)2=(149)10

ответ

 

 

Метод умножения

        

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

Число умножается на 2, если результат ³ 1, то в старший разряд записывается единица, если нет, то нуль. Умножаем на 2 дробную часть результата и повторяем процедуру. И так далее до получения нужной степени точности или до обнуления результата.

Перевод десятичного числа  в двоичное методом умножения

  

 

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

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

Математическая модель.

Для перевода из 2, 8, 10, 16 систем счисления в десятичную систему использую формулу:

n

AiMi,

i=0

где Ai – значение разрядного коэффициента i-го разряда, а М это основание системы счисления.

    Пример:

Число 326 в десятичной системе можно записать так 3*102+2*101+6*100=326

Число 100110 в двоичной системе можно записать так 1*25+0*24+0*23+1*22+1*21+0*20=38.

 

Для перевода из десятичной системы счисления в 2, 8, 10, 16 используем алгоритм:

repeat

c := a mod e;

if (e = 16) and (c>9) then l:= l + chr(c+55) else l:= l + chr(c+48);

if a <> 0 then b := a div e;

if b<e then if (e = 16) and (b>9) then l:= l + chr(b+55) else l:= l + chr(b+48);

a := b;

until (b<e) or (a = 0).

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

var

i,y: integer;

begin

y:=1;

   for i:= 1 to n do{Цикл задает число умножений}

   y := y*x;{умножает число которое требуется возвести в цикл на Y и присваивает значение Y}

   step := y;

end;

 

Таблица тестов .

Входные данные

Полученное число

Примечание

Переводимое число

Исходная система

Конечная система

1

1011

2

2

1011

Тесты предложенные на проверку правильности перевода

2

1011

2

8

13

3

1011

2

10

11

4

1011

2

16

B

5

17

8

2

1111

6

17

8

8

20

7

17

8

10

15

8

17

8

16

F

9

254

10

2

11111110

10

254

10

8

376

11

254

10

10

254

12

254

10

16

FE

13

adf34

16

2

10101101111100100000

14

adf34

16

8

2557464

15

adf34

16

10

712500

16

adf34

16

16

ADF34

17

212

16

10

530

18

ропл

2

16

ОШИБКА ВВОДА!!!

Тесты на ошибку ввода

19

adf323g

2

16

ОШИБКА ВВОДА!!!

20

пустая строка

8

10

ОШИБКА ВВОДА!!!

Список литературы.

1. Кодирование информации (Двоичные коды). Березнюк Н. Т. Андрущенко А. Г. И др. Харьковю 1978.

2. Выгодский М.Я. Справочник по элементарной математике, М.: Государственное издательство технико-теоретической литературы, 1956.

3. Каган Б.М. Электронные вычислительные машины и системы, М.: Энергоатомиздат, 1985.

4. Майоров С.А., Кириллов В.В., Приблуда А.А., Введение в микроЭВМ, Л.: Машиностроение, 1988.

5. Фомин С.В. Системы счисления, М.: Наука, 1987.

6. Ролич Ч. Н. – От 2 до 16, Минск, «Высшая школа», 1981г.

7. Математическая энциклопедия. М: “Советская энциклопедия” 1985г.

8. Шауман А. М. Основы машинной арифметики. Ленинград, Издательство Ленинградского университета. 1979г.

9. Калабеков Б. А. Цифровые устройства и микропроцессорные системы. М: “Горячая линия - Телеком” 2000г.

10.Ворощук А. Н. Основы ЦВМ и программирования. М:”Наука” 1978г.

11.Алексенко А. Г. Микросхемотехника. М: ”Радио и связь” 1990г.

 

 

МИНИСТЕРСТВО ОБРАЗОВАНИЯ

РОССИЙСКОЙ ФЕДЕРАЦИИ.

ИРКУТСКИЙ ГОСУДАРСТВЕННЫЙ

ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ.

ФАКУЛЬТЕТ КИБЕРНЕТИКИ.

КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ.

Дата: 2019-12-22, просмотров: 267.