Понятие системы счисления

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 13.12.2012
Размер файла 2,7 M

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

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

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

Введение

Современный человек в повседневной жизни постоянно сталкивается с числами и цифрами: запоминает номера автобусов и телефонов, в магазине подсчитывает стоимость покупок, ведет свой семейный бюджет в рублях и копейках и т.д. Числа и цифры с нами везде! Интересно, что знал человек о числах две тысячи лет назад? А пять тысяч лет назад?

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

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

Появление дробных чисел было связано с необходимостью производить измерения (сравнения с другой величиной того же рода, выбираемой в качестве эталона). Но поскольку единица измерения не всегда укладывалась целое число раз в измеряемой величине, то возникла практическая потребность, ввести более «мелкие» числа, чем натуральные. Дальнейшее развитие понятия числа было обусловлено уже развитием математики и информатики. Сегодня человечество для записи чисел использует в основном десятичную систему счисления. Что же такое - система счисления? Это мы узнаем в ходе изучения материала и в решении различного рода задач.

Цель исследования: ознакомится с понятием системы счисления; классификацией систем счисления.

Задачи исследования: изучить литературу по теме исследования, систематизировать теоретический материал, рассмотреть практические применения теоретического материала.

Понятие системы счисления. Классификация систем счисления. Позиционные и непозиционные системы счисления

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

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

А=аn an-1 а2 a1 а0

Отдельную позицию в записи числа принято называть разрядом, а номер позиции - номером разряда, количество разрядов в записи числа - это разрядность и она совпадает с длиной числа. В техническом плане длина числа интерпретируется как длина разрядной сетки. Если алфавит имеет р различных значений, то разряд aі в числе рассматривается как р-ичная цифра, которой может быть присвоено каждое из р значений.

Каждой цифре aі данного числа А однозначно соответствует ее количественный (числовой) эквивалент - К(aі). При любой конечной разрядной сетке количественный эквивалент числа А будет принимать в зависимости от количественных отдельных разрядов значения от К(А) min до К(А) max.

Диапазон представления (D) чисел в данной системе счисления - это интервал числовой оси, заключенный между максимальными и минимальными числами, представленными заданной разрядностью (длиной разрядной сетки):

D=К(А)(p) max - К(А)(p) min.

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

1) возможность представления любого числа в заданном диапазоне чисел;

2) однозначность представления;

3) краткость и простоту записи чисел;

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

В зависимости от целей применения используют различные системы счисления: 2-ю, 10-ю, 8-ю, 16-ю, римскую, а для исчисления времени - система счисления времени и т.д.

В основном системы счисления строятся по следующему принципу:

А(p)= аnрnn-1pn-11р1,

где А(p)- запись числа в системе с базисом рі;

аі- база или последовательность цифр системы счисления с рi-чным алфавитом

рi - базис системы счисления (совокупность весов отдельных разрядов системы счисления). Базис десятичной системы счисления 100, 101, 102, 103, 10п.

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

Вес разряда Ri в любой системе счисления - это отношение Ri=pi/p0.

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

К основным недостаткам непозиционных систем счисления можно отнести:

1) отсутствие нуля;

2) необходимость содержания бесконечного количества символов;

3) сложность арифметических действий.

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

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

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

Неоднородные позиционные системы счисления (со смешанным основанием)

В таких системах счисления в каждом разряде количество допустимых символов может быть различно значения не зависят друг от друга и могут принимать любые значения. Примером неоднородной позиционной системы счисления может служить система счисления времени, для которой Р0- 1сек,Р1- 60 сек, Р2- 60 мин, Р3- 24 часа, Р4- 365 суток.

Однородные позиционные системы счисления.

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

А(p)= аnрn + аn-1рn-1 + ... а1р1 + а0р0 + а-1р-1 +...+ а--k р-k .

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

Обычно число в однородной системе счисления записывается в сокращенном виде:

А(p)= аn аn-1 а1а0а-1 а--k,

а название системы счисления определяет ее основание: десятеричная, двоичная, восьмеричная, и т.д. Для любой позиционной системы счисления справедливо, что ее основание изображается символами 10 в своей системе.

Кодированные системы счисления

Это такие системы, в которых цифры одной системы счисления кодируются при помощи цифр другой системы. Примером может служить двоично-десятичная система с весами (8-4-2-1) или (8-4-2-1+3).

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

Можно сформулировать алгоритм перевода целых чисел из системы с основанием p в систему с основанием q:

1. Основание новой системы счисления выразить цифрами исходной системы счисления и все последующие действия производить в исходной системе счисления.

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

3. Полученные остатки, являющиеся цифрами числа в новой системе счисления, привести в соответствие с алфавитом новой системы счисления.

4. Составить число в новой системе счисления, записывая его, начиная с последнего остатка.

Пример 1. Перевести число 11(10) в двоичную систему счисления

Ответ: 11(10)=1011(2).

Пример 2. Перевести число 122(10) в восьмеричную систему счисления.

Ответ: 122(10)=172(8).

Пример 3. Перевести число 500(10) в шестнадцатеричную систему счисления.

Ответ: 500(10)=1F4(16)

Пример 4. Иногда более удобно записать алгоритм перевода в форме таблицы. Переведем десятичное число 36310 в двоичное число.

Делимое

363

181

90

45

22

11

5

2

1

Делитель

2

2

2

2

2

2

2

2

2

Остаток

1

1

0

1

0

1

1

0

1

Получаем: 36310=1011010112

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

Можно сформулировать алгоритм перевода правильной дроби с основанием p в дробь с основанием q:

1. Основание новой системы счисления выразить цифрами исходной системы счисления и все последующие действия производить в исходной системе счисления.

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

3. Полученные целые части произведений, являющиеся цифрами числа в новой системе счисления, привести в соответствие с алфавитом новой системы счисления.

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

Пример 1. Перевести число 0,625(10) в двоичную систему счисления.

Ответ: 0,625(10)=0,101(2).

Пример 2. Перевести число 0,6(10) в восьмеричную систему счисления.

Ответ: 0,6(10)=0,463(8).

Пример 3. Перевести число 0,7(10) в шестнадцатеричную систему счисления.

Ответ: 0,7(10)=0,В333(16).

Очевидно, что этот процесс может продолжаться бесконечно, давая все новые и новые знаки в изображении двоичного эквивалента числа 0,710. Так, за четыре шага мы получаем число 0,B33316, а за семь шагов мы получим число, которое является более точным представлением числа 0,710 в шестнадцатеричной системе счисления, и т.д. Такой бесконечный процесс обрывают на некотором шаге, когда считают, что получена требуемая точность представления числа.

Перевод произвольных чисел

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

Пример 1. Перевести число 17,2510 в двоичную систему счисления.

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

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

17 2

1 8 2

0 4 2

0 2 2

0 1

0, 25

Ч2

0 50

Ч2

1 00

Получаем: 17,2510=1001,012

Пример 2. Перевести число 124,2510 в восьмеричную систему.

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

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

124 8

4 15 8

7 1

0, 25

Ч8

2 00

Получаем: 124,2510=174,28

Перевод чисел из системы счисления с основанием 2 в систему счисления с основанием 2n и обратно

Перевод целых чисел. Если основание q-ичной системы счисления является степенью числа 2, то перевод чисел из q-ичной системы счисления в 2-ичную и обратно можно проводить по более простым правилам. Для того, чтобы целое двоичное число записать в системе счисления с основанием q=2n, нужно:

1. Двоичное число разбить справа налево на группы по n цифр в каждой.

2. Если в последней левой группе окажется меньше n разрядов, то ее надо дополнить слева нулями до нужного числа разрядов.

3. Рассмотреть каждую группу как n-разрядное двоичное число и записать ее соответствующей цифрой в системе счисления с основанием q=2n.

Перевод дробных чисел. Для того, чтобы дробное двоичное число записать в системе счисления с основанием q=2n, нужно:

1. Двоичное число разбить слева направо на группы по n цифр в каждой.

2. Если в последней правой группе окажется меньше n разрядов, то ее надо дополнить справа нулями до нужного числа разрядов.

3. Рассмотреть каждую группу как n-разрядное двоичное число и записать ее соответствующей цифрой в системе счисления с основанием q=2n.

Перевод произвольных чисел. Для того, чтобы произвольное двоичное число записать в системе счисления с основанием q=2n, нужно:

1. Целую часть данного двоичного числа разбить справа налево, а дробную -- слева направо на группы по n цифр в каждой.

2. Если в последних левой и/или правой группах окажется меньше n разрядов, то их надо дополнить слева и/или справа нулями до нужного числа разрядов;

3. Рассмотреть каждую группу как n-разрядное двоичное число и записать ее соответствующей цифрой в системе счисления с основанием q=2n

Перевод чисел из систем счисления с основанием q=2n в двоичную систему

Для того, чтобы произвольное число, записанное в системе счисления с основанием q=2n, перевести в двоичную систему счисления, нужно каждую цифру этого числа заменить ее n-значным эквивалентом в двоичной системе счисления.

Пример 1: записать число 16,24(8) в двоичной системе счисления.

Ответ: 16,24(8)= 10110,001001(2) .Примечание: незначащие нули слева для целых чисел и справа для дробей не записываются. Для обратного перевода двоичного числа в восьмеричную систему счисления, необходимо исходное число разбить на триады влево и вправо от запятой и представить каждую группу цифрой в восьмеричной системе счисления. Крайние неполные триады дополняют нулями.

Пример 2: записать число 10110,001001(2) в восьмеричной системе счисления.

Ответ: 10110,001001(2)= 16,24(8) .

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

Пример 3: записать число 7A,5E(16) в двоичной системе счисления.

Ответ: 7A,5E(16)= 1111010,0111111(2) .Примечание: незначащие нули слева для целых чисел и справа для дробей не записываются.

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

Пример: записать число 1111010,0111111(2) в шестнадцатеричной системе счисления.

Ответ: 1111010,0111111(2)= 7A,5E(16) .

счисление дробный перевод позиционный

Перевод двоичных, восьмеричных и шестнадцатеричных чисел в десятичную систему счисления

Для перевода числа P-ичной системы в десятичную необходимо использовать следующую формулу разложения:аnan-1…а1а0=аnPn+ аn-1Pn-1+…+ а1P+a0

Пример 1. Перевести число 101,11(2) в десятичную систему счисления.

Ответ: 101,11(2)= 5,75(10) .

Пример 2. Перевести число 57,24(8) в десятичную систему счисления.

Ответ: 57,24(8) = 47,3125(10) .

Пример 3. Перевести число 7A,84(16) в десятичную систему счисления.

Ответ: 7A,84(16)= 122,515625(10) .

Программа перевода чисел в Delphi

unit uMain;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls,Math;

type

TfrmMain = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

edSrcBase: TEdit;

edSrcNum: TEdit;

edTrgPrecision: TEdit;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

btnTransform: TButton;

edTrgBase: TEdit;

edTrgNum: TEdit;

procedure btnTransformClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var frmMain: TfrmMain;

implementation

uses StrUtils;

{$R *.dfm}

function IntToDigit(aNum : Byte) : String;

const SelfName : String = 'IntToDigit.';

begin

case aNum of

0..9 : Result := IntToStr(aNum);

10 : Result := 'A';

11 : Result := 'B';

12 : Result := 'C';

13 : Result := 'D';

14 : Result := 'E';

15 : Result := 'F';

else

Raise Exception.Create(SelfName + ' Числу не сопоставлена цифра!');

end;

end;

function DigitToInt(aDigit : AnsiChar; aBase : Byte) : Byte;

const

SelfName : String = 'DigitToInt.';

begin

if aBase < 2 then

Raise Exception.Create(SelfName + ' Основание системы счисления должно быть >= 2!') ;

case aDigit of

'0'..'9' : Result := StrToInt(aDigit);

'A', 'a' : Result := 10;

'B', 'b' : Result := 11;

'C', 'c' : Result := 12;

'D', 'd' : Result := 13;

'E', 'e' : Result := 14;

'F', 'f' : Result := 15;

else

Raise Exception.Create(SelfName + ' Неизвестный символ в представлении числа!');

end;

if Result > aBase - 1 then

Raise Exception.Create(SelfName + ' В данной системе счисления нет такой цифры!');

end;

function XcimalStrToNumber(aStrXcimal : String; aBase : Byte) : Extended;

const SelfName : String = 'XcimalStrToNumber.';

var i, j : Integer;

StrInt : String;

StrFrac : String;

Pos1 : Integer;

IntPart : Extended;

FracPart : Extended;

begin

if Length(aStrXcimal) = 0 then

Raise Exception.Create(SelfName + ' Не задано число!') ;

Pos1 := Pos(',', aStrXcimal);

if Pos1 = 0 then begin

StrInt := aStrXcimal;

StrFrac := '';

end else begin

StrInt := LeftStr(aStrXcimal, Pos1 - 1);

StrFrac := Copy(aStrXcimal, Pos1 + 1, Length(aStrXcimal) - Pos1);

end;

IntPart := 0;

for i := 1 to Length(StrInt) do begin

j := Length(StrInt) - i;

IntPart := IntPart + DigitToInt(StrInt[i], aBase) * Power(aBase, j);

end;

FracPart := 0;

for i := 1 to Length(StrFrac) do begin

j := Length(StrFrac) - i;

FracPart := FracPart + DigitToInt(StrFrac[i], aBase) * Power(aBase, j);

end;

FracPart := FracPart / Power(aBase, Length(StrFrac));

Result := IntPart + FracPart;

end;

function XcimalStrToYcimalStr ( aSrcBase : Byte; aSrcNumStr : String;

aTrgBase : Byte; aTrgPrecision : Byte) : String;

var SrcNum : Extended;

IntPart : Int64;

FracPart : Extended;

StrInt : String;

StrFrac : String;

i : Integer;

TempNum : Extended;

begin

SrcNum := XcimalStrToNumber(aSrcNumStr, aSrcBase);

IntPart := Trunc(SrcNum);

FracPart := Frac(SrcNum);

StrInt := '';

repeat

StrInt := IntToDigit(IntPart mod aTrgBase) + StrInt;

IntPart := IntPart div aTrgBase;

until IntPart = 0;

if FracPart = 0 then begin

Result := StrInt;

exit;

end;

StrFrac := '';

for i := 1 to aTrgPrecision do begin

TempNum := FracPart * aTrgBase;

StrFrac := StrFrac + IntToDigit(Trunc(TempNum));

FracPart := Frac(TempNum);

if FracPart = 0 then Break;

end;

Result := StrInt + ',' + StrFrac;

end;

procedure TfrmMain.btnTransformClick(Sender: TObject);

begin

edTrgNum.Text := XcimalStrToYcimalStr( StrToInt(edSrcBase.Text), edSrcNum.Text, StrToInt(edTrgBase.Text), StrToInt(edTrgPrecision.Text) );

end;

end.

Заключение

В какой системе счисления лучше записывать числа - это вопрос удобства и традиций. С технической точки зрения, в ЭВМ удобно использовать двоичную систему, так как в ней для записи числа используется всего две цифры 0 и 1, которыми можно представить двумя легко различимыми состояниями «нет сигнала» и «есть сигнал».

Изучая источники по теме «Системы счисления» мы получили возможность провести исторический анализ, исследовать различные формы записи чисел, систематизировать материал и выявить различные спектры применения.

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

Сейчас системы счисления очень распространены в электронно-вычислительной технике, многие коды и шифры созданы на их основе.

В ходе проведения исследования мы ознакомились с:

- с понятием системы счисления;

- классификацией систем счисления;

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

- выбором системы счисления для применения в ЭВМ;

- двоичной системой счисления;

- формами представления двоичных чисел в ЭВМ;

- точностью представления чисел в ЭВМ и др.

Литература

1. Самофалов К.Г., Романкевич А.М., и др. Прикладная теория цифровых автоматов. - Киев. “Вища школа” 1987.

2. Соловьев Г.Н. Арифметические устройства ЭВМ. - М. “Энергия”. 1978.

3. Савельев А.Я. Прикладная теория цифровых автоматов - М. “Высшая школа”. 1987.

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

Размещено на Allbest.ru


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

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

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

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

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

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

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

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

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

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

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

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

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

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

    курсовая работа [593,3 K], добавлен 03.01.2015

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

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

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

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

  • Основные виды программного обеспечения. Характеристика пакетов прикладных программ. Виды и группы систем счисления. Перевод целых и дробных чисел из одной системы счисления в другую. Арифметические операции в двоичной системе. Компьютерные преступления.

    шпаргалка [65,2 K], добавлен 19.01.2014

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