Автор работы: Пользователь скрыл имя, 15 Мая 2015 в 16:20, курсовая работа
Целью курсовой работы является разработка программного продукта для перевода чисел из одной системы исчисления в другую.
Для достижения поставленной цели были установлены следующие целевые задачи:
Изучение и анализ систем счисления;
Изучить различные виды системы счисления;
Научиться правилу перевода из одной системы счисления в другую;
Реализовать интерфейс простой и приятный пользователю.
Введение…………………………………………………………………….…….2
Глава 1.История развития систем счисления……..………………………..3
Зарождение систем счисления………………………………………………3
Образование десятичной системы счисления……………………………....6
Глава 2. Системы счисления…………….…………………………………..7
2.1Позиционные и непозиционные системы счисления………………………7
2.2 Двоичная(бинарная) система счисления…………………………………….8
2.3. Восьмеричная система счисления…………………………………………..9
2.4. Десятеричная система счисления…………………………………………...9
2.5. Шестнадцатеричная система счисления………………………………..…10
2.6 Представление двоичных чисел и перевод их в десятичные……………11
2.7 Преобразование десятичных чисел в двоичные…………………………..12
2.8 Метод деления………………………………………………………………12
2.9 Метод умножения…………………………………………………………..13
2.10Арифметические операции с числами в позиц-х системах счисления….15
Глава 3.Создание программного модуля…….…………………………...19 3 .1Постановка задачи……………….……………………………………….…19
3.2Внешнее проектирование программы……….…………………...…….…15
3.4Кодирование и отладка программы……………………………...….…..…21
3.5 Исходный код программы……………………………………………..…..23
Заключение……………………………………………………………….….….33
Список литературы………………………………………..…………………....34
2.4. Десятеричная система счисления.
Использует десять обычных цифр – 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9, а также символы «+» и «–» для обозначения знака числа и запятую (точку) для разделения целой и дробной частей числа. Существует массовое заблуждение, будто именно десятичная система счисления является наиболее употребительным способом записи чисел. Между тем, более внимательный анализ правил чтения и записи чисел приводит к другому выводу: система счисления, которой мы обычно пользуемся, фактически является двойной, так как имеет основания – 10 и 1000. В частности, в русском языке известны названия только для первых семи разрядов десятичной системы счисления ( 1 – единица, 10 – десяток, 100 – сотня, 1000 – тысяча, 10000 – тьма, 100000 – легион, 1000000 – миллион ), но предпоследние два из них (легион и тьма) давно вышли из употребления, а соседние с ними (миллион и тысяча) – названия классов, а не только разрядов. Итак, фактически в русском языке остались лишь два самостоятельных названия для десятичных разрядов: десяток и сотня. В других языках – аналогичная ситуация.
2.5. Шестнадцатеричная система счисления.
Использует шестнадцать цифр – 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9 в их обычном смысле, а затем A=10, B=11 , C=12 , D=13 , E=14 , F=15 . Также использует символы «+» и «–» для обозначения знака числа и запятую (точку) для разделения целой и дробной частей числа. Внедрена американской корпорацией IBM. Широко используется в программировании для IBM-совместимых компьютеров. С другой стороны, в некоторых языках сохранились и следы использования этой системы счисления в прошлом. Например, в романских языках (испанском, французском и др.) числительные от 11 до 16 образуются по одному правилу, а от 17 до 19 – по другому. А в русском языке известен пуд, равный 16 килограммам.
BIN |
OCT |
DEC |
HEX |
0 |
0 |
0 |
0 |
001 |
1 |
1 |
1 |
010 |
2 |
2 |
2 |
011 |
3 |
3 |
3 |
100 |
4 |
4 |
4 |
101 |
5 |
5 |
5 |
110 |
6 |
6 |
6 |
111 |
7 |
7 |
7 |
1 000 |
10 |
8 |
8 |
1 001 |
11 |
9 |
9 |
1 010 |
12 |
10 |
A |
1 011 |
13 |
11 |
B |
1 100 |
14 |
12 |
C |
1 101 |
15 |
13 |
D |
1 110 |
16 |
14 |
E |
1 111 |
17 |
15 |
F |
10 000 |
20 |
16 |
10 |
2.6 Представление двоичных чисел и перевод их в десятичные.
Совершенно очевидно, что двоичное число представляется последовательностью нулей и единиц – разрядов. Как и в любой позиционной системе, каждому разряду присвоен определенный вес – показатель степени основания системы. Веса первых 10 позиций представлены в таблице.
Веса первых десяти позиций двоичной системы счисления
Позиция |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Вес |
512 |
256 |
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
Образование |
В двоичной системе счисления даже сравнительно небольшие числа занимают много позиций.
Как и в десятичной системе, в двоичной системе счисления для отделения дробной части используется точка (двоичная точка). Каждая позиция слева от этой точки также имеет свой вес – вес разряда дробной части числа. Значение веса в этом случае равно основанию системы счисления (т.е. двойке), возведенному в отрицательную степень.
Получить десятичное число из двоичного чрезвычайно просто. Согласно формуле
для двоичной системы счисления получаем:
Пример иллюстрирует процесс получения десятичного числа из двоичного.
Перевод двоичного числа в десятичное
2.7 Преобразование десятичных чисел в двоичные
Перевод из двоичной системы в десятичную несколько сложнее. Рассмотрим несколько алгоритмов.
2.8 Метод деления
Другим методом является так называемый метод деления. Он применяется для преобразования целых чисел. Ниже приведен его алгоритм.
Разделим нацело десятичное число на двойку. Если есть остаток, запишем в младший разряд единицу, а если нет – нуль и снова разделим результат от первого деления. Повторим процедуру так до тех пор, пока окончательный результат не обнулиться.
Пример 2.8Перевод десятичного числа в двоичное методом деления
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.9 Метод умножения
И, наконец, метод умножения. Метод применяется для преобразования десятичных дробей (чисел меньших единицы).
Число умножается на 2, если результат ³ 1, то в старший разряд записывается единица, если нет, то нуль. Умножаем на 2 дробную часть результата и повторяем процедуру. И так далее до получения нужной степени точности или до обнуления результата.
Перевод десятичного числа в двоичное методом умножения
2.10 Арифметические операции с числами в позиционных системах счисления
Арифметические действия в двоичной системе счисления выполняют по тем же правилам, что и в десятичной системе, с той лишь разницей, что основание системы счисления равно двум и используются только две цифры.
Рассмотрим операцию сложения.
Сложение двоичных чисел сводится к сложению цифр соответствующих разрядов с учетом переносов.
При сложении двух двоичных чисел используются следующие четыре правила:
0 + 0 = 0
1 + 0 = 1
0 + 1 = 1
1 + 1 = 10, происходит перенос единицы в соседний (старший) разряд.
Например. Выполним сложение двух двоичных чисел 101 + 11 (в десятичной системе это 5 + 3 = 8).
Сложение лучше выполнять в столбик, добавив недостающие нули.
101
+
011
Рассмотрим процесс сложения поэтапно.
1. Выполняется сложение в младшем разряде: 1 + 1 = 10.В младшем разряде суммы записывается 0, и единица переносится в следующий старший разряд.
2. Суммируются
цифры следующего слева
0 + 1 + 1 = 10. В
этом разряде суммы
3. Суммируются цифры третьего слева разряда и единица переноса:
1 + 0 + 1 = 10. В
этом разряде записывается 1, и
единица переносится в
4. В результате получили:
Итак, 10002 = 810.
Сложение – важнейшая операция в двоичной арифметике. Три другие арифметические операции над двоичными числами в компьютерах – вычитание, умножение, деление – осуществляются обычно с помощью сложения.
Вычитание. При вычитании двоичных чисел нужно помнить, что
0 – 0 = 0
1 – 0 = 1
0 – 1 = 1, занимаем единицу в соседнем (старшем) разряде
1 – 1 = 0
Например. Найти разность двоичных чисел: 1010 – 101. Выполним вычитание в столбик, начиная с младшего разряда:
1. Для младшего разряда имеем: 0 – 1. Поэтому занимаем единицу в старшем разряде и находим 10 – 1 = 1.
2. В следующем разряде уже будет 0 – 0 = 0.
3. В разряде слева опять имеем 0 – 1. Занимаем единицу в старшем разряде и находим 10 – 1 = 1.
4. В следующем разряде остался 0.
5. В результате получили: 1010
-
101
101
Умножение. При умножении двоичных чисел нужно помнить, что
0 х 0 = 0
1 х 0 = 0
0 х 1 = 0
1 х 1 = 1
Например. Найти произведение двоичных чисел: 1012 и 1102. Выполним произведение чисел в столбик, начиная с младшего разряда:
101 101 Проверка: 1012 = 1 х 22 + 0 х 21 + 1 х 20 = 5
х + 1102 = 1 х 22 + 1 х 21 + 0 х 20 = 6
110 101
000 11110
111102 = 1 х 24 + 1 х 23 + 1 х 22 + 1 х 21 + 0 х 20 = 16 + 8 + 4 +2 + 0 = 3010, т.е. 5 х 6 = 30
Рассмотрим процесс умножения поэтапно.
1. Умножая на младший разряд по таблице, имеем 000.
2. Умножая на следующий разряд, получаем 101, но со сдвигом на один разряд влево.
3. Умножая на старший разряд, получаем также 101, но сдвигом на один разряд влево.
4. Теперь с
учетом таблицы сложения
Ввиду чрезвычайной простоты таблицы умножения в двоичной системе, умножение сводится лишь к сдвигам множимого и сложениям.
Деление. Деление в двоичной системе счисления производится по тем же правилам, что и деление углом в десятичной системе. В двоичной системе деление выполняется особенно просто, ведь очередная цифра частного может быть только нулем или единицей.
Например. Разделим число 30 на число 5. Для этого переведем число 3010в двоичное
111102.
30 2
0 15 2
1 7 2
1 3 2
1 1 2 – (старшая цифра двоичного числа)
Выполним деление углом на 510 = 1012:
11110 101
101 110
101
-
101
0 Получили результат 1102, равный 610.
Глава 3.Создание программного модуля Создание программного модуля
3.1Постановка задачи.
Наиболее часто встречающиеся системы счисления это двоичная, десятеричная и шестнадцатеричная система счисления, восьмеричная система счисления встречается только в инженерных калькуляторах, практическое же применения её давно прекратилось. Итак, наша задача осуществить перевод целых чисел из одной системы счисления в другую. Для этого выберем двоичную, восьмеричную, десятеричную и шестнадцатеричную систему счисления.
3.2Внешнее проектирование программы.
Для наглядности программу перевода лучше изобразить в виде ориентированного графа. Но если перевод осуществлять по этой схеме, то
код программы будет громоздким. Так как будет множество алгоритмов перевода.
Чтобы упростить программу я решил переводить с двоичной, восьмеричной, десятеричной и шестнадцатеричной системы счисления в десятеричную систему. Из десятеричной системы перевод осуществляется в любую из предложенных.
3.4 Кодирование и отладка программы.
Длякодированияпрограммыиспольз
Для начала я сделал форму, в которой имеется строка для “ввода чисел” и для “ввода основание системы” и строка вывода“получившее число” , а также три кнопки: ”Перевести”,”Стереть” и ”Обратно”.Как показано на рис.1
Рис.1.Главное окно
Рис.2.Арифметические операции
Для работы выбраны библиотеки(uses)
using System;
usingSystem.Collections.
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
Типыданных:
privateSystem.Windows.Forms.Te
privateSystem.Windows.Forms.Te
privateSystem.Windows.Forms.Nu
privateSystem.Windows.Forms.Nu
privateSystem.Windows.Forms.La
privateSystem.Windows.Forms.La
privateSystem.Windows.Forms.La
privateSystem.Windows.Forms.La
privateSystem.Windows.Forms.Bu
privateSystem.Windows.Forms.Me