
- •Оренбург 2008 г.
- •Оренбург
- •Оглавление
- •Введение
- •Краткая характеристика дисциплины
- •Основные требования к уровню освоения содержания дисциплины
- •Основные понятия информатики История развития информатики
- •Структура современной информатики
- •Информатика как единство науки и технологии
- •Структура современной информатики
- •Место информатики в системе наук
- •Социальные аспекты информатики
- •Правовые аспекты информатики
- •Этические аспекты информатики
- •Общая характеристика процессов сбора, передачи, обработки и накопления информации различные уровни представлений об информации
- •Виды и свойства информации
- •Качество информации
- •Восприятие, сбор, передача обработка и накопление информации
- •Единицы измерения информации
- •Семантическая мера информации
- •Прагматическая мера информации
- •Системы счисления
- •Перевод из десятичной системы счисления в двоичную
- •Восьмеричная и шестнадцатеричная системы
- •Арифметические и логические основы цифровых эвм Почему компьютер считает не так, как мы?
- •Отрицательные числа в компьютере
- •Алгоритмизация и программирование Понятие и свойства алгоритма
- •Правила построения алгоритмов
- •Виды алгоритмов
- •Способы записей алгоритмов
- •3. Описание на каком-либо языке программирования (программа).
- •Блок схема
- •Символы блок-схем
- •Структуры алгоритмов
- •Рекомендуемая литература
Перевод из десятичной системы счисления в двоичную
Правила перевода чисел из десятичной системы в двоичную вытекают из формулы представления числа. Рассмотрим сначала целое десятичное число N, представленное в виде пока неизвестных нам двоичных цифр:
.
Как найти неизвестные
цифры
?
Попробуем разделить десятичное числоN
на 2. Очевидно, что получится какое-то
частное, равное целой части от деления
N
пополам, и остаток. Последний будет
равным 0, если исходное число N
было четным, и 1 – если нечетным. А теперь
посмотрим, что произойдет при делении
на 2 эквивалентного выражения:
.
Очевидно, что
первых слагаемых делятся на 2 без остатка,
т.к. в их состав входят сомножители из
степеней двойки. Единственное слагаемое,
которое может дать ненулевой остаток,
это – цифра
,
не превосходящая единицы. Но ведь мы
делили на 2 одно и то же, поэтому остаток
от деленияN
пополам должен совпасть с цифрой
.
Итак, младшую цифру в двоичном разложении
числаN
мы установили.
Теперь внимательно
приглядимся к частному от нашего первого
деления. Обозначим его через
:
.
Что произойдет
при следующем делении
на 2? Очевидно, получится новое частое
,
а очередной остаток должен совпасть со
следующей двоичной цифрой
.
И так продолжают до тех пор, пока частное
после очередного деления на 2 не
превратится в нуль. Процесс этот
обязательно завершится через конечное
число шагов. К этому моменту мы будем
знать уже все цифры двоичного разложения
исходного числаN.
Пример: N = 96
|
|
|
о |
|
остаток
|
|
остаток
|
|
остаток
|
|
остаток
|
|
остаток
|
|
остаток
|
Пишем двоичные цифры, начиная с последней:
9610=11000002
Что изменится,
если потребуется преобразовать число
дробное десятичное число m
в двоичную систему? Вспомним формулу
разложения:
Попытка разделить левую и правую части на 2 ни к чему хорошему не приводит. А вот если попробовать умножать на 2, получится то, что надо:
Оказалось, что в
целую часть произведения «перебралась»
старшая цифра
.
Отбросим найденную цифру в левой и
правой частях равенства:
После очередного
умножения
на 2 в разряд целых перекочует двоичная
цифра
и т. д.
Пример:
.
Выполним действия:
И поскольку очередная дробная часть оказалась равной нулю, то последующие умножения ничего нового не принесут. В данном случае пишем двоичные цифры, начиная с первой. В результате:
На практике удобнее запись процесса перевода дробных чисел вести следующим образом:
|
875 |
|
|
Возникает вопрос: а всегда ли такой процесс завершится через конечное число шагов? С целыми числами такой проблемы не существовало. Любое целое число после многократного деления пополам, в конце концов, превратится в нуль. С дробями дело обстоит несколько иначе:
Пример:
|
6 |
1 0 0 1 1 |
2 4 8 6 2 |
Обратите внимание, что этот процесс будет продолжаться бесконечно долго, но периодичность повторяющихся цифр уже установлена:
Этот пример показывает, что не любая конечная десятичная дробь преобразуется в конечную же двоичную. Поэтому некоторые числа в машине могут быть представлены неточно за счет потери «хвоста». Если ЭВМ будет прибавлять 1/10, то может получиться не ожидаемая единица, а число, которое чуть-чуть меньше. В этом таятся подводные камни приближенных вычислений, с которыми иногда приходиться считаться. Но с целыми числами ошибок такого рода не бывает, и результат умножения 2 на 2 в ЭВМ всегда будет равен 4.
Теперь представим себе, что необходимо перевести в двоичную систему смешанное число 96,875. В таких случаях отдельно переводят целую часть числа путем последовательных делений на 2, а затем переводят дробную часть и объединяют полученные результаты:
96,87510=1100000,1112
Десятичная
система счисления, с которой начинается
наша школьная, а порой и дошкольная
математика, относится к позиционным
системам счисления. Для нее характерно
наличие – числа 10 и цифр
,
не превосходящих основание
.
В зависимости от номера позиции,
занимаемой в числе, каждая цифра множится
на соответствующую степень основания:
1996 = 6•1 + 9•10 + 9•100 + 1•1000
По-другому это можно записать так:
1996 = 1•103 + 9•102 + 9•101 + 6•100.
Отсюда также ясно, как записать любое четырехзначное число :
N = a3•103 + a2•102 + a1•101 + a0•100,
где a0, a1, a2, a3 десятичные цифры числа, причем цифра a3 не должна быть нулем, иначе число не будет четырехзначным.
Пример 1. Число 534110 запишем в форме многочлена:
534110 = 5 • 103 + 3 • 102 + 4 • 101 + 1 • 100
Пример 2. Число 32110 запишем в двоичной системе счисления. Для этого необходимо разложить число в виде суммы по степеням 2:
32110 = 1• 28+ 1• 26 + 1• 20.
Записываем коэффициенты при степенях двойки (от минимальной нулевой степени к максимальной) справа налево. Поэтому данное число в двоичной системе счисления будет иметь вид: 1010000012.
Пример 3. Для того чтобы решить обратную задачу: перевести число из двоичной системы счисления в десятичную, необходимо воспользоваться формулой и произвести вычисления в десятичной системе счисления.
Число 101001012 перевести в 10-ную систему счисления:
101001012 = 1 • 20 + 1 • 22 + 1 • 23 + 1 • 27 = 16510.
Пример 4. Для перевода целого числа из десятичной в двоичную систему счисления необходимо это число делить на двойку. Если поделилось без остатка, то пишем 0; если с остатком 1, то пишем 1. Это будет последняя цифра в записи числа. Например:
25 — 24 = 1 (остаток 1)
25/2 = 12
12 - 12 = 0 (остаток 0) 12/2 = 6
6 — 6 = 0 (остаток 0) 6/2 = 3
3 — 2 = 1 (остаток 1)
3/2 = 1 (остаток от деления числа 25 на 2) — это и будет первая цифра в записи числа 25 в двоичной системе. То есть 2510 = 110012.
Пример 5. Для перевода целого числа из двоичной системы в десятичную необходимо цифры умножать на двойку в степени номера позиции (номер позиции начинается с нуля и нумеруется справа налево, а для дробей - слева направо). Например:
110012 = 1 • 20 + 0 • 21 + 0 • 22 + 1 • 23 + 1 • 24 = = 1 + 0 + 0 + 8 +16 = 25.
0,1022=1• 2-1+0• 2-2+1• 2-3 = 0,62510
4,3,2,1,0 — номера позиций цифр в числе — они являются степенями двойки.
Таблица систем счисления
-
№
Двоичная
Восьмеричная
Десятичная
Шестнадцатеричная
0
000
0
0
0
1
001
1
1
1
2
010
2
2
2
3
011
3
3
3
4
100
4
4
4
5
101
5
5
5
6
110
6
6
6
7
111
7
7
7
8
1000
10
8
8
9
1001
11
9
9
10
1010
12
10
A
11
1011
13
11
B
12
1100
14
12
C
13
1101
15
13
D
14
1110
16
14
E
15
1111
17
15
F
16
10000
20
16
10
17
10001
21
17
11