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

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 17.05.2013
Размер файла 55,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru

Министерство образования и науки РФ.

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

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

Курсовая работа

по дисциплине “Информатика”

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

Выполнил: студент гр.249

Быков Н. А.

Проверил:

Орехов В. В.

Содержание

1. Введение

2. Практическая и математическая постановка задачи

3. Описание разрабатываемого алгоритма, его укрупненная схема

4. Развернутая блок-схема алгоритма

5. Решение контрольного примера

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

7. Листинг с результатами

Заключение

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

алгоритм счисление перевод число

1. Введение

В повседневной жизни мы, как правило, пользуемся десятичной системой счисления. Но это лишь одна из многих систем, которая получила свое распространение, вероятно, по той причине, что у человека на руках 10 пальцев. Однако эта система не всегда удобна. Так, в вычислительной технике применяется двоичная система счисления.

В разные исторические периоды развития человечества для подсчетов и вычислений использовались те или иные системы счисления. Например, довольно широко была распространена двенадцатеричная система. Многие предметы (ножи, вилки, тарелки, носовые платки и т. д.) и сейчас считают дюжинами. Число месяцев в году двенадцать. Двенадцатеричная система счисления сохранилась в английской системе мер (например, 1 фут = 12 дюймам) и в денежной системе (1 шиллинг = 12 пенсам).

В древнем Вавилоне существовала весьма сложная шестидесятеричная система. Она, как и двенадцатеричная система, в какой-то степени сохранилась и до наших дней (например, в системе измерения времени: 1 час = 60 минутам, 1 минута = 60 секундам, аналогично в системе измерения углов: 1 градус = 60 минутам, 1 минута = 60 секундам).

Вначале проанализируем различия между цифрами и числами: число это абстрагированная от конкретики запись количества (например, число 25 это двадцать пять предметов чего угодно и не только предметов, а, скажем, лет или килограммов), а цифра это специальный знак для обозначения количества единиц. Следует обратить внимание, что цифры это тоже записи чисел, например 8 это не только цифра, но и число.

Слово «цифра» происходит от позднелатинского слова «cifra», первые цифры появились у египтян и вавилонян, причем интересно, что цифры, как специальные знаки, образовались позже, чем буквы. Так, многие народы (греки, финикияне, евреи, сирийцы) для цифр использовали буквы алфавита, в России аналогичная система применялась вплоть до XVI века. Современные так называемые «арабские цифры» имеют неясное происхождение, например, утверждают, что они принесены в Европу арабами в XIII веке возможно из Индии. Повсеместно их стали использовать с XV века.

Число это одно из фундаментальных и самых древних понятий математики; оно появилось сначала в связи со счетом отдельных предметов, а затем, абстрагировавшись, стало обозначать количественную меру. Это привело к идее о бесконечности натурального ряда чисел: 1, 2, 3, 4... и т. д. Для наших целей такого определения достаточно, но математиками были разработаны и другие числа. В частности, задачи измерения площадей привели к понятию рационального (дробного) числа, затем появились отрицательные числа, необходимость в вычислении отношения диагонали квадрата к его стороне привела к открытию иррациональных чисел, рациональные и иррациональные числа составляют совокупность действительных чисел и т. д. И лишь в XIX веке была разработана теория действительных чисел. Новый импульс эта теория получила в связи с развитием компьютерных технологий.

Известно, что числовая ось бесконечна, поскольку к каждому числу можно прибавить еще единицу и получить следующее число, с которым можно поступить так же. При этом понятно, что придумывать какие-либо специальные обозначения (цифры) для любого элемента (числа) бесконечной числовой оси нереально.

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

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

В этом определении стоит выделить следующие важные моменты.

Количество знаков, которые обычно именуются «цифрами», всегда ограничено. И с помощью такого, ограниченного количества цифр (обычно мы используем десять цифр) удается записывать произвольные числа, например 23 456 или 1 000 123 456 789.

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

Позиционная система счисления состоит в использовании ограниченного числа цифр, зато позиция каждой цифры в числе обеспечивает значимость (вес) этой цифры. Позиция цифры на математическом языке называется разрядом.

Другими словами, значение цифры «переменчиво» и зависит от ее позиции в числе. Например, в числе «одиннадцать» («11») две единицы имеют разное значение, это относится и к другим сочетаниям «единиц» «111», «1111», «11 111» и т. д.

Не всякие числовые системы используют именно такой позиционный способ записи, в истории человечества были и иные эксперименты.

Способ записи чисел с помощью римских цифр не грешит единообразием: если цифра расположена справа, то ее значение прибавляется к предыдущей, например число «XI» означает «одиннадцать», а если слева, то значение вычитается, например число «IX», состоящее из тех же цифр, уже означает только «девять». Кроме того, в римской системе счисления в числе вес цифры X в любой позиции равен просто десяти, например число XXXII (тридцать два). И, наконец, цифры разбросаны по оси чисел.

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

Существует не одно множествоифр, образующих систему счисления. Это множество получило особое название основание системы счисления.

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

Выбор количества цифр диктуется какими-либо потребностями реальной жизни, науки или удобствами обработки. Исторически этот выбор определялся привычками или традициями конкретного народа.

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

Затем, благодаря наличию десяти пальцев рук у человека, возникла десятичная система счета. В этой системе используются специальные графические знаки арабские цифры, которые можно записать в следующем порядке: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Таких знаков десять, и они специально разделены запятыми, чтобы показать, что это отдельные («дискретные») знаки, которые не зависят друг от друга.

Идея позиционной системы счисления выдвигалась еще Архимедом в работе «Исчисление песка».

Перевод чисел из одной системы счисления в другую

Рассмотрим способы перевода чисел из одной системы счисления в другую.

а) Перевод двоичного числа в десятичное.

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

Возьмем число 20. В двоичной системе оно имеет следующий вид: 10100.

Итак (считаем слева направо, считая от 4 до 0; число в нулевой степени всегда равно единице)

10100 = 1*24 + 0*23 + 1*22 + 0*21 + 0*20 = 20

16+0+4+0+0 = 20.

б) Перевод десятичного числа в двоичное.

Необходимо делить его на два, записывая остаток справа налево:

20/2 = 10, остаток 0

10/2=5, остаток 0

5/2=2, остаток 1

2/2=1, остаток 0

1/2=0, остаток 1

В результате получаем: 10100 = 20

в) Перевод шестнадцатеричного числа в десятичное.

В шестнадцатеричной системе номер позиции цифры в числе соответствует степени, в которую надо возвести число 16:

8A = 8*16 + 10 (0A) = 138

Напоследок приведем алгоритм перевода в двоичную и из двоичной системы, предлагаемый Л. Радюком.

Пусть А(цд) - целое десятичное число. Запишем его в виде суммы степеней основания 2 с двоичными коэффициентами. В его записи в развёрнутой форме будут отсутствовать отрицательные степени основания (числа 2):

A(цд) = a(n-1) * 2^(n-1) + a(n-2) * 2^(n-2) + … + a(1) * 2^1 + a(0) * 2^0.

На первом шаге разделим число А(цд) на основание двоичной системы, то есть на 2. Частное от деления будет равно:

a(n-1) * 2^(n-2) + a(n-2) * 2^(n-3) + … + a(1), а остаток равен a(0).

На втором шаге целое частное опять разделим на 2, остаток от деления будет теперь равен a(1).

Если продолжать этот процесс деления, то после n-го шага получим последовательность остатков:

a(0), a(1),…, a(n-1).

Легко заметить, что их последовательность совпадает с обратной последовательностью цифр целого двоичного числа, записанного в свёрнутой форме:

A(2) = a(n-1)…a(1)a(0).

Таким образом, достаточно записать остатки в обратной последовательности, чтобы получить искомое двоичное число.

Тогда сам алгоритм будет следующим:

1. Последовательно выполнять деление исходного целого десятичного числа и получаемых целых частных на основание системы (на 2) до тех пор, пока не получится частное, меньшее делителя, то есть меньше 2.

2. Записать полученные остатки в обратной последовательности, а слева добавить последнее частное.

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

2. Практическая и математическая постановка задачи

1. Ввести 2 двоичных вещественных числа.

2. Проверка ввода.

3. Выделить в введенных числах целую и вещественную части.

4. Целые части перевести в десятичную систему счисления умножением на степень двойки.

5. Дробные части перевести в десятичную систему счисления умножением на два.

6. Соединить целые и дробные части обоих чисел в десятичной системе счисления.

7. Выполнить 4 арифметических операции над полученными десятичными числами.

8. Разделить результаты арифметических чисел на целую и вещественные части.

9. Перевести целые части в двоичную систему счисления делением на два.

10. Перевести вещественные части в двоичную систему счисления умножением на 2.

11. Соединить вместе целые и дробные части.

12. Вывод результата.

3. Описание разрабатываемого алгоритма, его укрупненная схема

Размещено на http://www.allbest.ru

4. Развернутая блок-схема алгоритма

Размещено на http://www.allbest.ru

5. Решение контрольного примера

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

X1 = 1001.1012

X2 = 1002

Перевод в десятичную систему счисления:

10012 = 910

0.1012 = 0.62510

X1 = 9.6252

1002 = 410

X2 = 410

Арифметические операции с десятичными числами:

X1 + X2 = 9.625 + 4 = 13.625

X1 - X2 = 9.625 - 4 = 5.625

X1 / X2 = 9.625 / 4 = 2.40625

X1 * X2 = 9.625 * 4 = 38.5

Перевод результатов в двоичную систему счисления:

X1 + X2 = 1101.1012

X1 - X2 = 101.1012

X1 / X2 = 10.011012

X1 * X2 = 100110.12

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

program kr_var1;

uses

crt;

var

f1, f2:text;

code: integer;

x1, x2, chastn, rez1, rez2, summ, razn, proizv, summ_dv, razn_dv, proizv_dv, chastn_dv: real;

float: boolean;

const

tochn = 5;

function convertto10(x: real) : string;

var

st, r, rezult2, rezult, st1, st2: string;

dlina, p, s, n, t, u, h, code, des, x_cel, x_temp, i, temp: integer;

x_drob, t1, des_: real;

begin

i:= 0;

x_cel:= trunc(x);

x_drob:= x - x_cel;

str(x_cel, st);

dlina:= length(st);

n:= dlina;

u:= 0;

h:= 1;

t:= 1;

des:= 0;

for i:= 1 to dlina do

begin

r:= copy(st, n, 1);

n:= n - 1;

if u >= 1

then

for p:= 1 to u do

begin

h:= h * 2;

val(r, temp, code);

if i = 1

then

h:= 1;

end;

val(r, t, code);

t:= t * h;

u:= u + 1;

des:= des + t;

str(des, st1);

h:= 1;

t:= 1;

end;

str(x_drob, st);

u:= 1;

dlina:= length(st);

n:= dlina;

h:= 1;

t:= 1;

des:= 0;

if trunc(x) <> x

then

begin

for i:= 3 to dlina do

begin

r:= copy(st, i, 1);

if u >= 1

then

for p:= 1 to u do

h:= h * 2;

val(r, t1, code);

if t1 <> 0

then

t1:= t1 / h;

u:= u + 1;

des_:= des_ + t1;

h:= 1;

end;

end;

str(des_, st2);

st2:= copy(st2, 3, tochn);

convertto10:= st1 + '.' + st2;

end;

function convertto2(x: real) : string;

var

v, i, j, l, code, x_cel, x_drob, vd, nt, rezult1, x_temp: integer;

st3, st4, y, temp, r, rezult2: string;

x_dr: real;

begin

str(x, st3);

j:= length(st3);

nt:= 0;

for i:= 1 to j do

begin

temp:= copy(st3, i, 1);

nt:= nt + 1;

if temp = '.'

then

break;

end;

vd:= 1;

i:= 1;

for i:= nt to j-1 do

vd:= vd*10;

x_cel:= trunc(x);

x_dr:= x - x_cel;

st3:= '';

st4:= '';

while x_cel > 0 do

begin

v:= x_cel mod 2;

x_cel:= x_cel div 2;

str(v, y);

st3:= st3 + y;

end;

j:= length(st3);

i:= 0;

l:= j;

for i:= 1 to j do

begin

temp:= copy(st3, l, 1);

l:= l - 1;

st4:= st4 + temp;

end;

if trunc(x) <> x

then

begin

while (x_dr <> 1) do

begin

if x_dr > 1

then

x_dr:= x_dr - 1;

x_dr:= x_dr * 2;

x_temp:= trunc(x_dr);

str(x_temp, rezult2);

r:= r + rezult2;

end;

end;

convertto2:= st4 + '.' + r;

r:= '';

x_temp:= 0;

end;

procedure proverka_dv(x: real; var fl: boolean);

var

st, r: string;

dlina, v, code, n, i: integer;

begin

str(x, st);

dlina:= length(st);

n:= dlina;

fl:= true;

for i:= 1 to dlina do

begin

r:= copy(st, n, 1);

n:= n - 1;

if r <> '.'

then

begin

val(r, v, code);

if (v < 0) or (v > 1)

then

fl:= false;

end;

end;

if fl = false

then

begin

writeln('Ввод данных не корректен');

end;

end;

begin

clrscr;

assign(f1, 'C:\Users\Никита\Desktop\input.txt');

reset(f1);

assign(f2, 'output.txt');

rewrite(f2);

float:= true;

readln(f1, x1);

readln(f1, x2);

proverka_dv(x1, float);

if float = false

then

exit;

proverka_dv(x2, float);

if float = false

then

exit;

val(convertto10(x1), rez1, code);

val(convertto10(x2), rez2, code);

summ:= rez1 + rez2;

if rez1 > rez2

then

razn:= rez1 - rez2

else

razn:= rez2 - rez1;

chastn:= rez1/rez2;

proizv:= rez1*rez2;

val(convertto2(summ), summ_dv, code);

val(convertto2(razn), razn_dv, code);

val(convertto2(chastn), chastn_dv, code);

val(convertto2(proizv), proizv_dv, code);

writeln(f2, summ_dv);

writeln(f2, razn_dv);

writeln(f2, chastn_dv);

writeln(f2, proizv_dv);

Close(f1);

Close(f2);

end.

7. Листинг с результатами

Ввод:

1001.101

100

Вывод:

1101.10011111111

101.10011111111

10.0110011111111

100110.011111111

Заключение

Позиционная система счисления состоит в использовании ограниченного числа цифр, зато позиция каждой цифры в числе обеспечивает значимость (вес) этой цифры. Позиция цифры в числе на математическом языке называется разрядом.

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

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

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

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

Программирование. Основы алгоритмиизации и программирования. Н. И. Парфилова, А. Н. Пылькин, Б. Г. Трусов. Москва 2012.

Программирование. Структурирование программ и данных. Н. И. Парфилова, А. Н. Пылькин, Б. Г. Трусов. Москва 2012.

Системы счисления. 1987. Фомин С. В.

Размещено на http://www.allbest.ru

...

Подобные документы

  • Общее представление о системах счисления. Перевод чисел в двоичную, восьмеричную и шестнадцатеричную системы счисления. Разбивка чисел на тройки и четверки цифр. Разряды символов числа. Перевод из шестнадцатеричной системы счисления в десятичную.

    практическая работа [15,5 K], добавлен 19.04.2011

  • Описание логической структуры программы "perevod" для перевода числа из одной системы счисления в другую. Блок-схема алгоритма обработчика события Button1Click. Разработка и испытание приложений. Назначение и условия применения программы, листинг.

    курсовая работа [945,5 K], добавлен 03.01.2011

  • Порождение целых чисел в позиционных системах счисления. Почему мы пользуемся десятичной системой, а компьютеры - двоичной (восьмеричной и шестнадцатеричной)? Перевод чисел из одной системы в другую. Математические действия в различных системах счисления.

    конспект произведения [971,1 K], добавлен 31.05.2009

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

    контрольная работа [138,9 K], добавлен 05.06.2010

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

    реферат [62,0 K], добавлен 13.01.2011

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

    курсовая работа [232,6 K], добавлен 16.01.2012

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

    реферат [687,5 K], добавлен 28.10.2011

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

    курсовая работа [343,1 K], добавлен 11.11.2014

  • Примеры правила перевода чисел с одной системы в другую, правила и особенности выполнения арифметических операций в двоичной системе счисления. Перевод числа с десятичной системы в двоичную систему счисления. Умножение целых чисел в двоичной системе.

    контрольная работа [37,3 K], добавлен 13.02.2009

  • Обработка информации и вычислений в вычислительной машине. Непозиционные и позиционные системы счисления. Примеры перевода десятичного целого и дробного числа в двоичную систему счисления. Десятично-шестнадцатеричное и обратное преобразование чисел.

    контрольная работа [41,2 K], добавлен 21.08.2010

  • Десятичная система счисления, ее происхождение и применение. Арифметические операции: сложение и вычитание, умножение и деление. Перевод чисел из одной системы счисления в другую. Применение систем: азбука Морзе, алфавитное кодирование, штрих-коды.

    курсовая работа [2,5 M], добавлен 12.01.2015

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

    презентация [516,8 K], добавлен 23.10.2015

  • Система счисления и перевод числа из одной системы в другую. Машинное предоставление информации. Числа с фиксированной точкой: прямой, обратный (инверсный) или дополнительный код. Программная реализация алгоритма и описание использованных процедур.

    курсовая работа [96,7 K], добавлен 20.11.2010

  • Понятие шестнадцатеричной системы счисления как позиционной с основанием "16", история ее внедрения. Символы и синтаксис использования, виды и правила перевода. Применение шестнадцатеричной системы счисления в цифровой электронике и компьютерной технике.

    презентация [1,6 M], добавлен 05.05.2012

  • Запись прямого и обратного кода для числа 10010 и -10010. Получение дополнительного кода числа для 16-разрядной ячейки. Перевод в двоичную систему счисления десятичных чисел: 10, 45, 7, 33. Запись в обратном и дополнительном кодах числа -67, -43, -89.

    практическая работа [13,7 K], добавлен 19.04.2011

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

    презентация [16,3 K], добавлен 07.06.2011

  • Предыстория чисел, связь названий чисел с определенной схемой счета. Системы счисления в Древнем Египте, Вавилоне, Греции, Риме, Америке, Китае, Индии, Аравии и Западной Европе. Обозначения чисел у древних евреев. Позиционные системы счисления.

    реферат [34,3 K], добавлен 15.03.2013

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

    лабораторная работа [142,3 K], добавлен 06.07.2009

  • Перевод числа из десятичной системы счисления в двоичную. Результат выполнения в TURBO PASKAL заданных функций и операций. Программа вычисления значений функции на языке PASKAL, блок-схема. Вычисление суммы и произведения всех элементов массива.

    контрольная работа [66,6 K], добавлен 15.02.2013

  • Организация средствами Microsoft Excel автоматического выполнения операций над представлениями чисел в позиционных системах счисления. Разработка электронных таблиц. Перевод чисел в десятичную систему счисления. Перевод из десятичной системы.

    курсовая работа [27,2 K], добавлен 21.11.2007

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.