Домой / Игры / Перевод из десятичной системы в шестнадцатеричную. Перевод чисел из шестнадцатеричной системы в десятичную

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

Лабораторная работа №1

Тема: Система счисления. Перевод целых десятичных чисел в двоичную, восьмеричную, шестнадцатиричную систему счисления. (1 час), СРСП(1 час).

Десятичная система счисления

Название «десятичная» объясняется тем, что в основе этой системы лежит основание десять. В этой системе для записи чисел используются десять цифр - 0, 1, 2, 3, 4 , 5, 6, 7, 8, 9.

Десятичная система является позиционной, так как значение цифры в записи десятичного числа зависит от ее позиции, или местоположения, в числе.

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

Например, запись 526 означает, что число состоит из 5 сотен, 2 десятков и 6 единиц, Цифра 6 стоит в разряде единиц. Цифра 2 - в разряде десятков цифра 5-в разряде сотен.

Это число записать в виде суммы:

526=5*10 2 +2*10 1 +6*10 0

в этой записи число 10-основание системы счисления. Для каждой цифры числа основание 10 возводится в степень, зависящую от позиции цифры, и умножается на эту цифру. Степень основания для единиц равна нулю, для десятков - единице, для сотен – двум и т.д.

Для записи десятичных дробей используются отрицатель­ные значения степеней основания. Например, число 555,55 в развернутой форме записывается следующим образом:

555,55 10 = 5*10 2 + 5*10 1 + 5*10°+ 5*10- 1 +5*10- 2 .:

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

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

Пример. Число 891 перевести из десятичной системы в двоичную систему счисления.

Решение:

1:2=0, 1 (старшая цифра двоичного числа)

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



Ответ: 891 10 =1101111011 2

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

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

Пример. Переведем десятичную дробь 0,322 в двоичную систему счисления.

Чтобы найти первую после запятой цифру двоичной дроби, нужно умножить заданное число на 2 и выделить целую часть произведения.

Решение:

0,322 10 8,83 10

0.322*2=0.644 0 8:2=4 остаток 0

0.644*2=1.288 1 4:2=2 остаток 0

0.288*2=0.576 0 2:2=1 остаток 0

0.576*2=1.152 1 1:2=0 остаток 1

0,3222 10 =0.0101 2 0.83*2=1.66 целая часть равна 1

0.66*2=1.32 целая часть равна 1

0.32*2=0.64 целая часть равна 0

0.64*2=1.28 целая часть равна 1

Ответ: 8,83=1000,1101

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

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

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

Решение:

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

Ответ: 891 10 =1573 8

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

Аналогично преобразуют десятичное число в шестнадцатеричное с той лишь разницей, что это число вместо 8 делят на 16.

Пример: Число 891 перевести из десятичной системы в шестнадцатеричную систему счисления.

Решение: остаток

Самостоятельная работа студента с преподователям:

1. Задание: Представьте виде суммы степеней основания числа:

1. 425 10 8. 3678,898 10

2. 256 10 9. 7,29083 10

3. 852 10 10. 0,0032 10

4. 1243 10 11. 2,3589 10

5. 2569 10 12. 48,965 10

6. 4568 10 13. 56,897 10

7. 12568 10 14. 48,975 10

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

323 10 8. 125 10

150 10 9. 229 10

283 10 10. 88 10

428 10 11. 255 10

315 10 12. 325 10

181 10 13. 259 10

176 10 14. 652 10

3. Задание:Переводите дробные десятичные числа в двоичную систему счисления:

0,322 10 8. 37,25 10

150,7006 10 9. 206,125 10

283,245 10 10. 0,386 10

0,428 10 11. 10,103 10

315,075 10 12. 8,83 10

181,369 10 13. 14,125 10

176,526 10 14. 15,75 10

4. Задание:Переводите десятичные числа в восьмеричную систему счисления:

1. 322 10 8. 7006 10

2. 524 10 9. 125 10

3. 283,245 10 10. 229 10

4. 428 10 11. 88 10

5. 315,075 10 12. 37,25 10

6. 181,369 10 13. 206,125 10

7. 176,526 10 14. 940 10

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

1. 322 10 8. 369 10

2. 150,7006 10 9. 125 10

3. 283,245 10 10. 229 10

4. 428 10 11. 88 10

5. 315,075 10 12. 37,25 10

6. 181 10 13. 206,125 10

7. 176,526 10 14. 98,93 10

Контрольные вопросы:

1. Что называют системой счисления?

2. В чем отличие позиционных систем счисления от непозиционных?

3. Что называют основанием позиционной системы счисления?

4. Что такое разряд?

Лабораторная работа №2

Тема занятия: Двоичная система счисления. Перевод чисел из двоичной системы в восьмеричную, шестнадцатиричную систему счисления. Арифметические действия над двоичными числами. (1 час), СРС (2час).

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

Для того чтобы отличить двоичное число от десятичного, содержащего только цифры 0 и1, к записи двоичного числа в индексе добавляется признак двоичной системы счисления, например 110101,111 2 . Каждый разряд (цифру) двоичного числа называют битом.

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

1010101,101 2 =1*2 6 +0*2 5 +1*2 4 +0*2 3 +1*2 2 +0*2 1 +1*2 0 +1*2 -1 +0*2 -2 +1*2 -3

Эта сумма записывается по тем же правилам, что и сумма для десятичного числа. В данном примере двоичное числа имеет семизначную целую и трехзначную дробную части. Поэтому старшая цифра целой части, т.е. единица, умножается на 2 7-1 =2 6 , следующая цифра целой части, равная нулю, умножается на 2 5 и т.д. по убывающим степеням двойки до младшей, третьей, цифры дробной части, которая будет умножена на 2 -3 . Выполняя в этой сумме арифметические операции по правилам десятичной системы, получим десятичное число 85,625. Таким образом, двоичное число 1010101,101 совпадает с десятичным числом 85,625 или 1010101,101=85,625 10

1. 11100011 2 =1×2 7 +1×2 6 +1×2 5 +0×2 4 +0×2 3 +0×2 2 +1×2 1 +1×2 0 = 128+64+32+2+1=227 10

2. 0,10100011 2 =1×2 -1 +0×2 -2 +1×2 -3 +0×2 -4 +0×2 -5 +0×2 -6 +1×2 -7 +1×2 -8 =0,5+0,125+0,0078+0,0039 =0,6367 10

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

Число

Перевод из 10 2 8 16 системы счисления. Перевести в 2 10 8 16 систему счисления .
Для дробных чисел использовать 2 3 4 5 6 7 8 знака после запятой.

Можно вводить как целые числа, например 34 , так и дробные, например, 637.333 . Для дробных чисел указывается точность перевода после запятой.

Вместе с этим калькулятором также используют следующие:

Способы представления чисел

Двоичные (binary) числа – каждая цифра означает значение одного бита (0 или 1), старший бит всегда пишется слева, после числа ставится буква «b». Для удобства восприятия тетрады могут быть разделены пробелами. Например, 1010 0101b.
Шестнадцатеричные (hexadecimal) числа – каждая тетрада представляется одним символом 0...9, А, В, ..., F. Обозначаться такое представление может по-разному, здесь используется только символ «h» после последней шестнадцатеричной цифры. Например, A5h. В текстах программ это же число может обозначаться и как 0хА5, и как 0A5h, в зависимости от синтаксиса языка программирования. Незначащий ноль (0) добавляется слева от старшей шестнадцатеричной цифры, изображаемой буквой, чтобы различать числа и символические имена.
Десятичные (decimal) числа – каждый байт (слово, двойное слово) представляется обычным числом, а признак десятичного представления (букву «d») обычно опускают. Байт из предыдущих примеров имеет десятичное значение 165. В отличие от двоичной и шестнадцатеричной формы записи, по десятичной трудно в уме определить значение каждого бита, что иногда приходится делать.
Восьмеричные (octal) числа – каждая тройка бит (разделение начинается с младшего) записывается в виде цифры 0–7, в конце ставится признак «о». То же самое число будет записано как 245о. Восьмеричная система неудобна тем, что байт невозможно разделить поровну.

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

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

Пример №1 .



Перевод из 2 в 8 в 16 системы счисления.
Эти системы кратны двум, следовательно, перевод осуществляется с использованием таблицы соответствия (см. ниже).

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

Пример №2 . 1010111010,1011 = 1.010.111.010,101.1 = 1272,51 8
здесь 001=1; 010=2; 111=7; 010=2; 101=5; 001=1

При переводе в шестнадцатеричную систему необходимо делить число на части, по четыре цифры, соблюдая те же правила.
Пример №3 . 1010111010,1011 = 10.1011.1010,1011 = 2B12,13 HEX
здесь 0010=2; 1011=B; 1010=12; 1011=13

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

Пример №4 .
Пример перевода из двоичной в десятичную систему счисления.

1010010,101 2 = 1·2 6 +0·2 5 +1·2 4 +0·2 3 +0·2 2 +1·2 1 +0·2 0 + 1·2 -1 +0·2 -2 +1·2 -3 =
= 64+0+16+0+0+2+0+0.5+0+0.125 = 82.625 10 Пример перевода из восьмеричной в десятичную систему счисления. 108.5 8 = 1*·8 2 +0·8 1 +8·8 0 + 5·8 -1 = 64+0+8+0.625 = 72.625 10 Пример перевода из шестнадцатеричной в десятичную систему счисления. 108.5 16 = 1·16 2 +0·16 1 +8·16 0 + 5·16 -1 = 256+0+8+0.3125 = 264.3125 10

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

  1. Из десятичной системы счисления:
    • разделить число на основание переводимой системы счисления;
    • найти остаток от деления целой части числа;
    • записать все остатки от деления в обратном порядке;
  2. Из двоичной системы счисления
    • Для перевода в десятичную систему счисления необходимо найти сумму произведений основания 2 на соответствующую степень разряда;
    • Для перевода числа в восьмеричную необходимо разбить число на триады.
      Например, 1000110 = 1 000 110 = 106 8
    • Для перевода числа из двоичной системы счисления в шестнадцатеричную необходимо разбить число на группы по 4 разряда.
      Например, 1000110 = 100 0110 = 46 16
Позиционной называется система , для которой значимость или вес цифры зависит от ее места расположения в числе. Соотношение между системами выражается таблицей.
Таблица соответствия систем счисления:
Двоичная СС Шестнадцатеричная СС
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F

Таблица для перевода в восьмеричную систему счисления

Результат уже получен!

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

Существуют позиционные и не позиционные системы счисления. Арабская система счисления, которым мы пользуемся в повседневной жизни, является позиционной, а римская − нет. В позиционных системах счисления позиция числа однозначно определяет величину числа. Рассмотрим это на примере числа 6372 в десятичном системе счисления. Пронумеруем это число справа налево начиная с нуля:

Тогда число 6372 можно представить в следующем виде:

6372=6000+300+70+2 =6·10 3 +3·10 2 +7·10 1 +2·10 0 .

Число 10 определяет систему счисления (в данном случае это 10). В качестве степеней взяты значения позиции данного числа.

Рассмотрим вещественное десятичное число 1287.923. Пронумеруем его начиная с нуля позиции числа от десятичной точки влево и вправо:

Тогда число 1287.923 можно представить в виде:

1287.923 =1000+200+80 +7+0.9+0.02+0.003 = 1·10 3 +2·10 2 +8·10 1 +7·10 0 +9·10 -1 +2·10 -2 +3·10 -3 .

В общем случае формулу можно представить в следующем виде:

Ц n ·s n +Ц n-1 ·s n-1 +...+Ц 1 ·s 1 +Ц 0 ·s 0 +Д -1 ·s -1 +Д -2 ·s -2 +...+Д -k ·s -k

где Ц n -целое число в позиции n , Д -k - дробное число в позиции (-k), s - система счисления.

Несколько слов о системах счисления.Число в десятичной системе счисления состоит из множества цифр {0,1,2,3,4,5,6,7,8,9}, в восьмеричной системе счисления - из множества цифр {0,1,2,3,4,5,6,7}, в двоичной системе счисления - из множества цифр {0,1}, в шестнадцатеричной системе счисления - из множества цифр {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}, где A,B,C,D,E,F соответствуют числам 10,11,12,13,14,15.В таблице Таб.1 представлены числа в разных системах счисления.

Таблица 1
Система счисления
10 2 8 16
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F

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

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

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

С помощью формулы (1) можно перевести числа из любой системы счисления в десятичную систему счисления.

Пример 1. Переводить число 1011101.001 из двоичной системы счисления (СС) в десятичную СС. Решение:

1 ·2 6 +0 ·2 5 +1 ·2 4 +1 ·2 3 +1 ·2 2 +0 ·2 1 +1 ·2 0 +0 ·2 -1 +0 ·2 -2 +1 ·2 -3 =64+16+8+4+1+1/8=93.125

Пример 2. Переводить число 1011101.001 из восьмеричной системы счисления (СС) в десятичную СС. Решение:

Пример 3 . Переводить число AB572.CDF из шестнадцатеричной системы счисления в десятичную СС. Решение:

Здесь A -заменен на 10, B - на 11, C - на 12, F - на 15.

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

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

Целую часть числа переводится из десятичной СС в другую систему счисления - последовательным делением целой части числа на основание системы счисления (для двоичной СС - на 2, для 8-ичной СС - на 8, для 16-ичной - на 16 и т.д.) до получения целого остатка, меньше, чем основание СС.

Пример 4 . Переведем число 159 из десятичной СС в двоичную СС:

159 2
158 79 2
1 78 39 2
1 38 19 2
1 18 9 2
1 8 4 2
1 4 2 2
0 2 1
0

Как видно из Рис. 1, число 159 при делении на 2 дает частное 79 и остаток 1. Далее число 79 при делении на 2 дает частное 39 и остаток 1 и т.д. В результате построив число из остатков деления (справа налево) получим число в двоичной СС: 10011111 . Следовательно можно записать:

159 10 =10011111 2 .

Пример 5 . Переведем число 615 из десятичной СС в восьмеричную СС.

615 8
608 76 8
7 72 9 8
4 8 1
1

При приведении числа из десятичной СС в восьмеричную СС, нужно последовательно делить число на 8, пока не получится целый остаток меньшее, чем 8. В результате построив число из остатков деления (справа налево) получим число в восьмеричной СС: 1147 (см. Рис. 2). Следовательно можно записать:

615 10 =1147 8 .

Пример 6 . Переведем число 19673 из десятичной системы счисления в шестнадцатеричную СС.

19673 16
19664 1229 16
9 1216 76 16
13 64 4
12

Как видно из рисунка Рис.3, последовательным делением числа 19673 на 16 получили остатки 4, 12, 13, 9. В шестнадцатеричной системе счисления числе 12 соответствует С, числе 13 - D. Следовательно наше шестнадцатеричное число - это 4CD9.

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

Рассмотрим вышеизложенное на примерах.

Пример 7 . Переведем число 0.214 из десятичной системы счисления в двоичную СС.

0.214
x 2
0 0.428
x 2
0 0.856
x 2
1 0.712
x 2
1 0.424
x 2
0 0.848
x 2
1 0.696
x 2
1 0.392

Как видно из Рис.4, число 0.214 последовательно умножается на 2. Если в результате умножения получится число с целой частью, отличное от нуля, то целая часть записывается отдельно (слева от числа), а число записывается с нулевой целой частью. Если же при умножении получиться число с нулевой целой частью, то слева от нее записывается нуль. Процесс умножения продолжается до тех пор, пока в дробной части не получится чистый нуль или же не получим требуемое количество разрядов. Записывая жирные числа (Рис.4) сверху вниз получим требуемое число в двоичной системе счисления: 0.0011011 .

Следовательно можно записать:

0.214 10 =0.0011011 2 .

Пример 8 . Переведем число 0.125 из десятичной системы счисления в двоичную СС.

0.125
x 2
0 0.25
x 2
0 0.5
x 2
1 0.0

Для приведения числа 0.125 из десятичной СС в двоичную, данное число последовательно умножается на 2. В третьем этапе получилось 0. Следовательно, получился следующий результат:

0.125 10 =0.001 2 .

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

0.214
x 16
3 0.424
x 16
6 0.784
x 16
12 0.544
x 16
8 0.704
x 16
11 0.264
x 16
4 0.224

Следуя примерам 4 и 5 получаем числа 3, 6, 12, 8, 11, 4. Но в шестнадцатеричной СС числам 12 и 11 соответствуют числа C и B. Следовательно имеем:

0.214 10 =0.36C8B4 16 .

Пример 10 . Переведем число 0.512 из десятичной системы счисления в восьмеричную СС.

0.512
x 8
4 0.096
x 8
0 0.768
x 8
6 0.144
x 8
1 0.152
x 8
1 0.216
x 8
1 0.728

Получили:

0.512 10 =0.406111 8 .

Пример 11 . Переведем число 159.125 из десятичной системы счисления в двоичную СС. Для этого переведем отдельно целую часть числа (Пример 4) и дробную часть числа (Пример 8). Далее объединяя эти результаты получим:

159.125 10 =10011111.001 2 .

Пример 12 . Переведем число 19673.214 из десятичной системы счисления в шестнадцатеричную СС. Для этого переведем отдельно целую часть числа (Пример 6) и дробную часть числа (Пример 9). Далее объединяя эти результаты получим.

ПЕРЕВОД ЧИСЕЛ ИЗ ВОСЬМЕРИЧНОЙ СИСТЕМЫ В ДЕСЯТИЧНУЮ

Восемь раз отмерь, один раз переведи.

А. Алешин

Алгоритм перевода чисел из восьмеричной в десятичную систему счисления аналогичен уже рассматривавшемуся нами в разделе Перевод чисел из двоичной системы в десятичную. Различие состоит лишь в том, что для восьмеричной системы счисления основанием является число 8 , а правило перевода в данном случае может быть сформулировано в следующем виде:

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

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

2357 8 = (2·8 3)+(3·8 2)+(5·8 1)+(7·8 0) = 2·512 + 3·64 + 5·8 + 7·1 = 1263 10

К аждый О хотник Ж елает З нать, Г де С идит Ф азан.
Запишите в шестнадцатеричной системе счисления все цвета,
встречающиеся в этом мнемоническом правиле. Слабо?

А. Алешин

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

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

Например, требуется перевести шестнадцатеричное число F45ED23C в десятичное. В этом числе 8 цифр и 8 разрядов (помним, что разряды считаются, начиная с нулевого, которому соответствует младший бит). В соответствии с вышеуказанным правилом представим его в виде суммы степеней с основанием 16 :

F45ED23C 16 = (15·16 7)+(4·16 6)+(5·16 5)+(14·16 4)+(13·16 3)+(2·16 2)+(3·16 1)+(12·16 0) = 4099854908 10

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

Для перевода чисел из десятичной системы счисления в двоичную используют так называемый "алгоритм замещения", состоящий из следующей последовательности действий:



1. Делим десятичное число А на 2 . Частное Q запоминаем для следующего шага, а остаток a записываем как младший бит двоичного числа.

2. Если частное q не равно 0 , принимаем его за новое делимое и повторяем процедуру, описанную в шаге 1. Каждый новый остаток (0 или 1 ) записывается в разряды двоичного числа в направлении от младшего бита к старшему .

3. Алгоритм продолжается до тех пор, пока в результате выполнения шагов 1 и 2 не получится частное Q = 0 и остаток a = 1 .

Например, требуется перевести десятичное число 247 в двоичное. В соответствии с приведенным алгоритмом получим:

247 10: 2 = 123 10
247 10 - 246 10 = 1, остаток 1 записываем в МБ двоичного числа.
123 10: 2 = 61 10
123 10 - 122 10 = 1, остаток 1 записываем в следующий после МБ разряд двоичного числа.
61 10: 2 = 30 10
61 10 - 60 10 = 1, остаток 1 записываем в старший разряд двоичного числа.
30 10: 2 = 15 10
30 10 - 30 10 = 0, остаток 0 записываем в старший разряд двоичного числа.
15 10: 2 = 7 10
15 10 - 14 10 = 1, остаток 1 записываем в старший разряд двоичного числа.
7 10: 2 = 3 10
7 10 - 6 10 = 1, остаток 1 записываем в старший разряд двоичного числа.
3 10: 2 = 1 10
3 10 - 2 10 = 1, остаток 1 записываем в старший разряд двоичного числа.
1 10: 2 = 0 10 , остаток 1 записываем в старший разряд двоичного числа.

Представление чисел в ЭВМ: естественная и нормальная формы (+методичка)

В ЭВМ используются следующие формы представления данных:
числа с фиксированной точкой (запятой) или естественная форма;
числа с плавающей точкой (запятой) или нормальная форма;
десятичные числа;
символьные данные.

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

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

0,81756423-10» р = 0; 8,17564230,10-1. р=-1; 0,08175642.101 P==-fl.

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

Действия над числами, представленными в нормальной форме, сложнее, чем иад числами с фиксированной запятой. Но зато форма «с плавающей запятой>-позволяет охваггить очень ширлжий диапазон чисел.

Числа с фиксированной точкой

В общем случае разрядная сетка ЭВМ для размещения чисел в форме с фиксированной точкой показана на рисунке.
На рисунке показано п разрядов для представления целой части числа и r разрядов - для дробной части числа.

A) фиксированная

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

Использование формы с фиксированной точкой для представления смешанных (с целой и дробной частью) чисел в ЭВМ практически не встречается. Как правило, используются ЭВМ либо с дробной арифметикой (п=0), либо с целочисленной арифметикой (r=0).

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

Числа с плавающей точкой
b) рис 14.б с плавающей точкой

В нормальной форме число представляется в виде произведения X=mq p
где т - мантисса числа;
q - основание системы счисления;
р - порядок.

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

Для однозначности представления чисел в ЭВМ используется нормальная нормализованная форма, в которой положение точки всегда задается перед значащей цифрой мантиссы, т. е. выполняется условие

В общем случае разрядную сетку ЭВМ для размещения чисел в нормальной форме можно представить в виде, изображенном на рис. Разрядная сетка содержит:

· разряд для знака мантиссы;

· r цифровых разрядов для q-ичного кода модуля мантиссы;

· разряд для кода знака порядка;

· s разрядов для q-ичного кода модуля порядка.

Диапазон представления модулей чисел в нормальной нормализованной форме определяется следующим неравенством:

Пример :

133,21 = 10 2 *1.3321, 10 2 - порядок, 1.3321- мантисса.
1332.1 = 10 3 *1.3321
0.13321 = 10 -1 *1.3321

Одно и то же число может быть записано в различных формах

452,34 = 452340·10 -3 = 0,0045234·10 5 = 0,45234·10 3

Естественная форма Нормальная форма

В конкретной ЭВМ диапазон представления чисел с плавающей точкой зависит от основания системы и числа разрядов для представления порядка.
При этом у одинаковых по длине форматов чисел с плавающей точкой с увеличением основания системы счисления существенно расширяется диапазон представляемых чисел.
Точность вычислений при использовании формата с плавающей точкой определяется числом разрядов мантиссы r. Она увеличивается с увеличением числа разрядов.
При представлении информации в виде десятичных многоразрядных чисел каждая десятичная цифра заменяется двоично-десятичным кодом. Для ускорения обмена информацией, экономии памяти и удобства операций над десятичными числами предусматриваются специальные форматы их представления: зонный (распакованный) и упакованный . Зонный формат используется в операциях ввода-операций. Для этого в ЭВМ имеются специальные команды упаковки и распаковки десятичных чисел.

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

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

Например, требуется перевести шестнадцатеричное число F45ED23C в десятичное. В этом числе 8 цифр и 8 разрядов (помним, что разряды считаются, начиная с нулевого, которому соответствует младший бит). В соответствии с вышеуказанным правилом представим его в виде суммы степеней с основанием 16 :

F45ED23C 16 = (15·16 7 )+(4·16 6 )+(5·16 5 )+(14·16 4 )+(13·16 3 )+(2·16 2 )+(3·16 1 )+(12·16 0 ) = = 4099854908 10

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

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

Для перевода чисел из десятичной системы счисления в двоичную используют так называемый "алгоритм замещения", состоящий из следующей последовательности действий:

    Делим десятичное число А на2 . ЧастноеQ a записываем какмладший бит двоичного числа.

    Если частное q не равно0 , принимаем его за новое делимое и повторяем процедуру, описанную в шаге 1. Каждый новый остаток (0 или1 ) записывается в разряды двоичного числа в направлении отмладшего бита кстаршему .

    Q =0 и остатокa =1 .

247 в двоичное. В соответствии с приведенным алгоритмом получим:

247 10 : 2 = 123 10

247 10 -246 10 =1 , остаток1 записываем вМБ двоичного числа.

123 10 : 2 = 61 10

123 10 -122 10 =1 , остаток1 записываем в следующий послеМБ разряд двоичного числа.

61 10 : 2 = 30 10

61 10 -60 10 =1 , остаток1

30 10 : 2 = 15 10

30 10 -30 10 =0 , остаток0 записываем в старший разряд двоичного числа.

15 10 : 2 = 7 10

15 10 -14 10 =1 , остаток1 записываем в старший разряд двоичного числа.

7 10 : 2 = 3 10

7 10 -6 10 =1 , остаток1 записываем в старший разряд двоичного числа.

3 10 : 2 = 1 10

3 10 -2 10 =1 , остаток1 записываем в старший разряд двоичного числа.

1 10 : 2 = 0 10 , остаток1 записываем в старший разряд двоичного числа.

Таким образом, искомое двоичное число равно 11110111 2 .

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

Для перевода чисел из десятичной системы счисления в восьмеричную используют тот же "алгоритм замещения", что и при переводе из десятичной системы счисления в двоичную, только в качестве делителя используют 8 , основание восьмеричной системы счисления:

    Делим десятичное число А на8 . ЧастноеQ запоминаем для следующего шага, а остатокa записываем какмладший бит восьмеричного числа.

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

    Алгоритм продолжается до тех пор, пока в результате выполнения шагов 1 и 2 не получится частное Q =0 и остатокa меньше8 .

Например, требуется перевести десятичное число 3336 в восьмеричное. В соответствии с приведенным алгоритмом получим:

Таким образом, искомое восьмеричное число равно 6410 8 .