Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на экзамен по информатике.docx
Скачиваний:
15
Добавлен:
17.04.2019
Размер:
1.19 Mб
Скачать

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

Система счисления — это совокупность приемов и правил, по которым числа записываются и читаются.

Существуют позиционные и непозиционные системы счисления.

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

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

Сама же запись числа 757,7 означает сокращенную запись выражения

700 + 50 + 7 + 0,7 = 7 . 102 + 5 . 101 + 7 . 100 + 7 . 10-1 = 757,7.

Любая позиционная система счисления характеризуется своим основанием.

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

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

an-1 qn-1 + an-2 qn-2 + ... + a1 q1 + a0 q0 + a-1 q-1 + ... + a-m q-m,

где  ai  — цифры системы счисления;   n и m — число целых и дробных разрядов, соответственно. Например:

Вопрос №

Представление информации в эвм

{Первая ЭВМ была создана в 1945 году в баллистической лаборатории США. В 1948 году она была рассекречена. В СССР первая ЭВМ была создана в 1951 году. Это была первая ЭВМ в континентальной Европе. Изобретение ЭВМ называют главным достижением человечества в ХХ веке.}

Отличительными особенностями ЭВМ являются:

  1. Возможность выполнения заданных действий без участия человека.

  2. Возможность сохранять информацию в памяти.

Память можно представить как совокупность пронумерованных (т.е. имеющих адрес) ячеек, в каждой из которых имеется либо отсутствует электрический заряд. При этом наличие электрического заряда в ячейке условно принимается за двоичную цифру «1», отсутствие электрического заряда – за двоичную цифру «0». Таким образом, можно считать, что память есть совокупность адресованных ячеек, в которых хранятся двоичные цифры 0 и 1.

Опр. 1. Ячейка памяти ЭВМ, являющаяся минимальной структурной единицей информации, называется битом.

{Однако процессор ЭВМ работает не с отдельными битами, а с группами по 8 бит.}

Опр. 2. Биты, объединенные в группы по 8, называются байтами1.

Более крупными единицами информации являются килобайт (1024 байт, или 210 байт), мегабайт (1024 килобайта, или 220 байт) и гигабайт (1024 мегабайт, или 230 байт).

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

Вопрос № 8 Представление числовой информации

Рассмотрим целые числа. В персональных компьютерах типа IBM PC (далее ПК) различают представление целых чисел без знака (неотрицательных целых чисел) и целых чисел со знаком. {Это связано с тем, что в заданном объеме памяти можно представить больший диапазон чисел без знака, чем чисел со знаком.}

Числовая информация в ПК кодируется в двоичной системе счисления. В отличие от привычной для нас десятичной системы счисления, где для записи числа используется 10 цифр от 0 до 9, в двоичной системе счисления для записи числа используются только две цифры: 0 и 1.

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

Пример 1. Представить число 149 в двоичной системе счисления.

Следовательно, 149(10) = 10010101(2)

Для перевода двоичного числа anan-1an-2a1a0 в десятичную систему счисления используется формула an2n+an-12n-1+…+a121+a020

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

10010101(2)=120+021+122+023+124+025+026+127=1+4+16+128.

Очевидно, что n бит позволяют закодировать 2n различных чисел. Таким образом, 1 байта достаточно, чтобы закодировать числа от 0 до 255, 2 байт – от 0 до 65 535, 4 байт – от 0 до 4 294 967 295 (проверить самостоятельно).

Вопрос №9 Теперь рассмотрим целые числа со знаком. В ПК целые числа со знаком записываются в так называемом дополнительном коде: неотрицательные числа записываются так же, как и целые без знака, а отрицательные представляются беззнаковым числом:

где n – количество бит, отводимых для записи числа x.

Пример 3. В случае n=8

доп(0) = 0 = 00000000

доп(1) = 1 = 00000001

доп(2) = 2 = 00000010

доп(3) = 3 = 00000011

… … … … … … … … … … …

доп(126) = 126 = 01111110

доп(127) = 127 = 01111111

––––––––––––––––––––––––––––––––––––––

доп(-1) = 28-1 = 255 = 11111111

доп(-2) = 28-2 = 254 = 11111110

доп(-3) = 28-3 = 253 = 11111101

… … … … … … … … … … …

доп(-126) = 28-126 = 130 = 10000010

доп(-127) = 28-127 = 129 = 10000001

доп(-128) = 28-128 = 128 = 10000000

Из примера видно, что в дополнительном коде самый левый бит играет роль знакового: он равен нулю для неотрицательных чисел и равен единице для отрицательных. Таким образом, в случае целых чисел со знаком 1 байта достаточно, чтобы закодировать числа от -128 до +127, 2 байт – от –32 768 до +32 767, 4 байт – от –2 147 483 648 до +2 147 483 647 (проверить самостоятельно, сравнить со случаем целых чисел без знака).

Вопрос № 10 Далее рассмотрим особенности представления в ЭВМ вещественных чисел.

Вещественные числа в памяти ЭВМ могут быть записаны в двух формах:

  1. С фиксированной точкой.

  2. С плавающей точкой.

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

Пример 4. В случае десятичной системы счисления, пяти разрядов для представления целой части и восьми разрядов для представления дробной части, числа 632, 24.1254 и ‑0.0125012 будут иметь вид:

+00632.00000000 +00024.12540000 -00000.01250120

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

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

M10R,

где M – мантисса числа ( ),

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

Пример 5. В форме с плавающей точкой числа из предыдущего примера будут иметь вид:

+0.63210+3 +0.24125410+2 -0.12501210-1

Далее рассмотрим особенности представления дробной части вещественного числа в двоичной системе счисления. Для перевода числа Q (|Q|<1), записанного в десятичной системе счисления, в двоичную систему счисления, можно использовать следующий алгоритм:

  1. Число Q умножается на 2.

  2. Целая часть полученного результата приписывается справа к двоичной записи числа.

  3. Дробная часть результата, полученного в п. 1 принимается за число Q.

  4. Осуществляется переход к п. 1.

Процесс продолжается вплоть до достижения заданной точности или до того момента, когда в п. 3 получится число 0.

Пример 6. Представить в двоичной системе счисления число 0.3125.

0.3125 x 2 = 0.625  0

0.625 x 2 = 1.25  1

0.25 x 2 = 0.5  0

0.5 x 2 = 1.0  1

0.0 {x 2 = 0}.

Таким образом, 0.3125(10) = 0.0101(2),

Пример 7. Представить в двоичной системе счисления число 0.428, если для записи дробной части этого числа выделен 1 байт.

1) 0.428 x 2 = 0.856  0

2) 0.856 x 2 = 1.712  1

3) 0.712 x 2 = 1.424  1

4) 0.424 x 2 = 0.848  0

5) 0.848 x 2 = 1.696  1

6) 0.696 x 2 = 1.392  1

7) 0.392 x 2 = 0.784  0

8) 0.784 x 2 = 1.568  1

… … … … …

0.428(10)  0.01101101(2)

Очевидно, в общем случае для перевода вещественного числа (без знака) в 2 с/с необходимо перевести отдельно целую часть в 2 с/с (делением в столбик на 2), отдельно – дробную (по вышеописанному алгоритму), затем объединить (сложить) полученные результаты.

Пример 8.

9.3125(10) = 9(10) + 0.3125(10) = 1001(2) + 0.0101(2) = 1001.0101(2).

Приведенный пример показывает, что вещественные числа хранятся в памяти ПК, вообще говоря, приближенно. {Этот факт следует учитывать при написании программ. Например, если в память ПК занести число Q равное 0.428, а затем выполнить проверку условия «Q=0.428?», то, вполне вероятно, будет получен результат «не верно».}

Для перевода двоичного числа anan-1a1aa-1a-2a1-sa-s в десятичную систему счисления используется формула

an2n+an-12n-1+ …+a121+a020+ a-12-1+a-22-2+…+a1-s21-s+a-s2-s

Пример 9. Перевести в десятичную систему счисления двоичное число, полученное в примере 7.

0.01101101(2) = 020+02-1+12-2+12-3+02-4+12-5+12-6+02-7+12-8 = 0.42578125 (не равно 0.428!)

Вопрос № 11 Следует отметить, что запись чисел в двоичной системе счисления является довольно громоздкой. Поэтому при программировании вместо двоичной системы счисления часто используется шестнадцатеричная, в которой для отображения цифр больших 9 используются буквы A=10, B=11, C=12, D=13, E=14, F=15. Для перевода чисел из двоичной системы счисления в шестнадцатеричную каждой шестнадцатеричной цифре ставят в соответствие группу из четырех двоичных разрядов (табл. 1).

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

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

Разобьем данное число на группы по 4 разряда. Т.к. всего число содержит 22 разряда, то слева необходимо приписать два нуля: 0010 1010 1101 0010 1011 1010. Воспользовавшись табл. 1, получаем: 1010101101001010111010(2) = 2AD2BA(16)

Замечание. Чтобы отличать шестнадцатеричные числа от десятичных, в конце записи шестнадцатеричного числа указывается символ h (hexadecimal – шестнадцатеричный)

Пример 11. 2035h = 10000000110101(2) = 8245 (проверить самостоятельно).

Вопрос № 12

Представление текстовой информации

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

В ЭВМ, как правило, используются 8-разрядные коды символов. Это позволяет закодировать 256 различных символов, {чего вполне достаточно для представления многих символов, используемых на практике.} Поэтому для кода символа достаточно выделить в памяти один байт.

В ПК наряду с более современными (Windows-1251, KOI-8 и др.) используется система кодировки ASCII (American Standard Code for Information Interchange). Кодировка ASCII имеет основной стандарт и его расширение. Основной стандарт использует для кодирования символов коды 00h – 7Fh, расширение стандарта – коды 80h – FFh. Основной стандарт является международным и используется для кодирования управляющих символов, цифр и букв латинского алфавита. В расширении стандарта кодируются символы псевдографики и букв национального алфавита. Кодировка ASCII некоторых символов приведена в табл. 

Пример 12. Название шведской музыкальной группы “ABBA” кодируется следующим образом:

а) в 2 с/с: 01000001010000100100001001000001;

б) в 16 с/с: 41424241.

Вопрос № 13