- •Оренбург 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