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

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
Лабораторная работа №3
Позиционные системы счисления
В привычной для нас десятичной системе счисления используют 10 цифр: 0,1,2,…,9 и каждое число представлено как:
где i номер разряда,
a одна из цифр от 0 до 9,
s количество разрядов в дробной части числа,
m - количество разрядов в целой части числа.
Например, 405,35=4*102+0*101+5*100+3*10-1+5*10-2
Но десятичная система счисления далеко не единственно возможная.
В общем случае число N в некоторой позиционной системе счисления с основанием P записывается как
где a цифра от 0 до P-1,
P основание системы счисления.
Позиционными системами счисление называются такие, у которых вес каждой цифры a зависит от позиции в изображении числа. Так римская система счисления непозиционная.
Максимальное целое число, которое может быть представлено в m разрядах:
Минимальное значащее (не равное 0) число, которое можно записать в s разрядах дробной части:
Для представления информации в ЭВМ используется двоичная или двоично-десятичная система счисления. В двоичной системе только две цифры 0 и 1. Важное достоинство двоичной системы счисления удобство физического представления цифр. Любой носитель компьютерной информации (триггер, магнитный сердечник, домен) может принимать двоичное значение «есть сигнал / нет сигнала».
Любое число в двоичной системе представляет несколькими двоичными разрядами, каждый разряд несет информацию равную 1 биту.
Поэтому каждый разряд и называют просто битом. Пример двоичного числа с дробной частью:
1010.0012=1*23+0*22+1*21+0*20+0*2-1+0*2-2+1*2-3=10.12510.
Недостаток двоичной системы слишком громоздкая запись.
Например,
17310=10101101.
Поэтому она используется «внутри» ЭВМ, а для представления двоичных кодов человеку часто применяют восьмеричную и шестнадцатеричную системы счисления. В восьмеричной используют цифры от 0 до 7. Например,
2578=2*82+5*81+7*80=17510.
В шестнадцатеричной используют цифры от 0 до 9 и добавляются новые цифры: A = 10, B = 11, C = 12, D = 13, E = 14, F = 15.
Например,
3E5A116=3*164+E*163+5*162+A*161+1*160=3*164+14*163+5*162+10*161+1*160 =25539310
Чем больше основание СС, тем компактнее запись чисел.
Итак, выше приведены примеры перевода чисел из двоичной, восьмеричной и шестнадцатеричной систем счисления в десятичную.
Алгоритм обратного перевода заключается в следующем. Число в десятичной системе счисления последовательно делится на основание системы счисления, в которую надо переводить. В качестве цифр нового представления берутся остатки от деления в обратном порядке, начиная с младшего остатка.
На рис.1 приведен пример перевода 1010 в двоичную систему.
10 |
2 |
|||
0 |
5 |
2 |
||
1 |
2 |
|||
0 |
2 |
|||
1 |
2 |
|||
1 |
0 |
Рисунок 1.
Таким образом, 1010=10102 .
Для перевода дробных частей десятичных чисел используют следующий алгоритм. Число в десятичной системе счисления необходимо последовательно умножать на основание системы счисления, в которую надо переводить. Причем умножать надо только очередную дробную часть, игнорируя возникающие целые части. В качестве цифр берутся целые части результатов умножения. Так происходит до тех пор, пока дробная часть не станет равной нулю или не достигается заданная точность.
На рис.2 приведен пример перевода 0.62510 в двоичную систему счисления.
0. |
625 |
* |
2 |
1. |
250 |
* |
2 |
0. |
500 |
* |
2 |
1. |
000 |
Рисунок 2.
Таким образом, 0.62510=0.1012.
Для перевода из двоичной в восьмеричную систему счисления число в двоичной системе необходимо разбить по три цифры (на триады) справа налево, и вместо каждой триады записать восьмеричную цифру соответствующую двоичному коду триады. Например, необходимо перевести 11011110112 в восьмеричную систему счисления, тогда
001 101 111 011
1 5 7 3
Таким образом, 11011110112=15738.
Аналогично, при переводе в шестнадцатеричную систему счисления двоичное число разбивается по четыре цифры (на тетрады). Например, переведем 11011110112 в шестнадцатеричную систему счисления.
0011 0111 1011
3 7 11
Таким образом, 11011110112=37В16 .
Обратный перевод из восьмеричной или шестнадцатеричной системы счисления в двоичную очень прост, каждая цифра записывается в двоичном коде по триадам или тетрадам.
1238 = 1 010 0112
А1716 = 1010 0001 01112 .
Для изображения двоичных чисел часто используют двоично-десятичную систему счисления. В этой системе для изображения каждой десятичной цифры отводится тетрада. Например, десятичное число 925 в двоично-десятичной системе запишется в виде 1001 0010 0101. Следует обратить внимание, что эта запись отличается от двоичного изображения данного числа. Например, приведенный выше код в двоичной системе изображает число 234110.
Форматы представления чисел
В вычислительных машинах применяются две формы представления двоичных чисел:
• естественная форма или форма с фиксированной запятой (точкой);
• нормальная форма или форма с плавающей запятой (точкой).
С фиксированной запятой все числа изображаются в виде последовательности цифр с постоянным для всех чисел положением запятой, разделяющей целую часть от дробной. Например, пусть десятичной системе счисления имеются 5 разрядов в целой части числа (до запятой) и 5 разрядов в дробной части числа (после запятой); числа, записанные в такую разрядную сетку, имеют вид:
+00721,35500; +00000,00328; -10301,20260.
Эта форма наиболее проста, естественна, но имеет небольшой диапазон представления чисел и поэтому не всегда приемлема при вычислениях.
Диапазон значащих чисел N в системе счисления с основанием Р при наличии m разрядов в целой части и s разрядов в дробной части числа (без учета знака числа) будет:
P-s ≤ N ≤ Pm-1.
При P=2, m=10 и s=6: 0,015625 ≤ N ≤ 1023.
При P=2, m=16 и s=0: 0 ≤ N ≤ 65535.
При P=2, m=0 и s=15: 0,000030517578125 ≤ N ≤ 0.
Если в результате операции получится число, выходящее за допустимый диапазон, происходит переполнение разрядной сетки, и дальнейшие вычисления теряют смысл. В современных ЭВМ естественная форма представления используется как вспомогательная и только для целых чисел.
С плавающей запятой каждое число изображается в виде двух групп цифр. Первая группа цифр называется мантиссой, вторая порядком, причем абсолютная величина мантиссы должна быть меньше 1, а порядок целым числом. В общем виде число в форме с плавающей запятой может быть представлено так:
N = ±MP ± r
где М мантисса числа (│М│ < 1);
r порядок числа (r - целое число);
Роснование системы счисления.
Приведенные выше числа в нормальной форме запишутся так:
+0,721355*103; +0,328•10-2; - 0,103012026*105.
Нормальная форма представления имеет огромный диапазон отображения чисел и является основной в современных ЭВМ. Диапазон значащих чисел в системе счисления с основанием Р при наличии m разрядов у мантиссы и s разрядов у порядка (без учета знаковых разрядов порядка и мантиссы) будет:
При P=2, m=10 и s=6: 10-22<N<1019
Знак числа обычно кодируется двоичной цифрой, при этом код 0 означает знак "+", код 1 знак "-".
Для алгебраического представления чисел (т.е. для представления положительных и отрицательных чисел) в машинах используются специальные коды: прямой, обратный и дополнительный. Причем два последних позволяют заменить неудобную для ЭВМ операцию вычитания на операцию сложения с отрицательным числом; дополнительный код обеспечивает более быстрое выполнение операций, поэтому в ЭВМ применяется чаще именно он.
Для удобства работы введены следующие термины, обозначающие совокупности двоичных разрядов. Эти термины обычно используются в качестве единиц измерения объемов информации, хранимой или обрабатываемой в ЭВМ.
1 бит = 1 двоичный разряд,
1 байт = 8 бит,
1 слово = 2 байта,
1 килобайт (Кбайт или Кб или К) = 210 байт = 1024 байт,
1 мегабайт (Мбайт или Мб или М) = 220 байт = 1024 Кбайт = 1 048 576 байт,
1 гигабайт (Гбайт или Гб или Г) = 230 байт = 1024 Мбайт = 220 Кбайт = 1 073 741 824 байт,
1 терабайт (Тбайт или Тб или Т) = 240байт = 1024 Гбайт = 220 Мбайт= 1099 511 627 776 байт.
Последовательность нескольких битов или байтов часто называют полями данных. Биты в числе (в слове, в поле и т.п.) нумеруются справа налево, начиная с 0-го разряда.
В ПК могут обрабатываться поля постоянной и переменной длины.
Поля постоянной длины:
слово 2 байта
двойное слово 4 байта
расширенное слово8 байт
Числа с фиксированной запятой чаще всего имеют формат слова и байта, числа с плавающей запятойформат двойного слова (Single), слова из 6 байт (Real), расширенного слова (Double) и слова из 10 байт (Extended).
Поля переменной длины могут иметь любой размер от 0 до 256 байт, но обязательно равный целому числу байтов.
Запись числа 19310= -110000012 в разрядной сетке ПК в формате с фиксированной запятой приведена на рис.3.
Знак числ. |
Абсолютная величина числа |
|||||||||||||||
№ разр |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Чис ло |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
Рисунок 3
Это же число с плавающей запятой формата двойного слова показано на рис.4.
. |
Зн |
Порядок |
Мантисса |
|||||||||||||||||
№ разр |
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
… |
1 |
0 |
Чис ло |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
… |
0 |
0 |
Рисунок 4
Двоично-кодированный десятичные числа могут быть представлены в ПК полями переменной длины, в так называемых, упакованном и распакованном форматах.
В упакованном формате для каждой десятичной цифры отводится по 4 двоичных разряда (полбайта), при этом знак числа кодируется в крайнем правом полубайте числа (1100 знак "+" и 1101 знак "-"). Структура поля упакованного формата показана на рис.5.
ЦФ |
ЦФ |
ЦФ |
ЦФ |
… |
ЦФ |
Знак |
Байт
Рисунок 5
Здесь и далее: «ЦФ» - цифра, «Знак» - знак числа. Упакованный формат используется обычно в ПК при выполнении операций сложения и вычитания двоично-десятичных чисел.
В распакованном формате для каждой десятичной цифры отводится по целому байту, при этом старшие полубайты (зона) каждого байта (кроме самого младшего) в ПК заполняются кодом 0011, а в младших (правых) полубайтах обычным образом кодируются десятичные цифры.
Старший полубайт (зона) самого младшего (правого) байта используется для кодирования знака числа.
Структура поля распакованного формата показана на рис.6.
Зона |
ЦФ |
Зона |
ЦФ |
… |
Знак |
ЦФ |
Байт
Рисунок 6
Распакованный формат используется в ПК при вводе-выводе информации в ПК, а также при выполнении операций умножения и деления двоично-десятичных чисел.
Пример. Число 19310 = 000110010011(2-10) в ПК будет представлено:
в упакованном формате:
0001 1001 0011 1101
в распакованном формате:
0011 0001 0011 1001 1101 0011
Представление текстовой информации
Распакованный формат представления двоично-десятичных чисел (иногда его называют "зонный") является следствием использования в ПК ASCII-кода для представления символьной информации.
Код ASCII (American Standard Coding for Information Interchange) - американский стандартный код для обмена информацией имеет основной стандарт и его расширение. Основной стандарт для кодирования символов использует шестнадцатеричные коды 00 7F (десятичные 0 127), расширение стандарта 80 FF (десятичные коды 128 255). Основной стандарт является международным и используется для кодирования управляющих символов, цифр и букв латинского алфавита; в расширении стандарта кодируются символы псевдографики и буквы национального алфавита (естественно, в разных странах разные).
В России в качестве стандарта принята кодовая страница 866. Чтобы получить код какого-либо символа с помощью Паскаля необходимо использовать оператор writeln(ord(readkey)), программа остановится на этом операторе, и будет ожидать нажатие клавиши. Коды символов можно узнать и из литературы. Коды можно использовать, например, для красивого вывода таблиц путем использования символов псевдографики в операторах вывода writeln. Это делается следующим образом. Нажимается и удерживается клавиша Alt и при этом на правой цифровой клавиатуре набирается трехзначный код необходимого символа, при отпускании клавиши Alt на экране появляется желаемый символ..
Задания.
1. Перевести десятичное число А = 121 в двоичную систему счисления,
2. Перевести двоичное число А = 10001010111,01 в десятичную систему счисления.
3. Перевести десятичное число А = 135,656 в двоичную систему счисления с точностью
до пяти знаков после запятой.
4. Сколько потребуется двоичных разрядов для изображения десятичного числа А=1018..
5. Перевести двоичное число А2 =10111011 в десятичную систему счисления методом деления на основание.
6. Перевести восьмеричное число А8 =345,766 в двоичную систему счисления.
7. Записать десятичное число А= 79,346 в двоично-десятичной форме.
8. Перевести десятичную дробь А = , в двоичную систему счисления,
9. Перевести восьмеричную дробь A8 = бЗ в двоичную систему счисления.
10. Перевести восьмеричное число A8 = 326 в троичную систему счисления.
11. Перевести восьмеричное число А8=15,647 в двоичную систему счисления.
12. Перевести троичное число А3 =1211 в пятеричную систему счисления.
13. Для какой системы счисления с основанием q2=x справедливо равенство121 = 441x?
14. Записать машинное изображение в форме с плавающей запятой для десятичного числа
А = -3,375 , если для мантиссы имеется шесть двоичных разрядов со знаком и для порядков
три двоичных разряда (со знаком).