русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2015-08-14; просмотров: 1751; Нарушение авторских прав


Кодирование информации

С целью унификации приемов и методов работы с данными применяются различные типы кодирования. Одним из методов кодирования информации являются системы счисления.

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

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

Системы счисления – правила исчисления чисел. В любой СС для представления чисел выбираются некоторые символы, называемые базисными числами.

В современном мире наиболее распространенным является представление чисел посредством арабских цифр 0, 1 … 9.

СС различаются выбором базисных чисел и правилами образования из них остальных чисел.

Например, в римской СС базисными являются числа 1, 5, 10, 50, 100, 500, 1000, обозначаемые знаками I, V, X, L, C, D, M, а другие получаются путем сложения и вычитания базисных: если цифра справа меньше или равна цифре слева, то эти цифры складываются; цифра слева меньше, чем равна цифра справа, то левая цифра вычитается из правой. Например, 146 ® C XL VI (100 40 6).

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

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

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



Любое действительное число, записанное в позиционной СС с основанием q, может быть представлено как разложение по степеням основания этой системы:

aNaN–1… a0,a–1… aM= aN× qN+ aN–1× qN–1+…+ a0× q0+ a–1× q–1+…+ a–M× q–M

Перевод чисел из одной СС в другую

Перевод чисел из десятичной системы счисления в систему с основанием P>1 осуществляется по следующему алгоритму:

- если переводится целая часть числа, то она делится на Р, после чего запоминается остаток от деления. Полученное частное вновь делится на Р, остаток запоминается. Процедура продолжается до тех пор, пока частное не станет равным нулю. Остатки от деления на Р выписываются в порядке, обратном их получению;

- если переводится дробная часть числа, то она умножается на Р, после чего целая часть запоминается и отбрасывается. Вновь полученная дробная часть умножается на Р и т.д. Процедура продолжается до тех пор, пока дробная часть не станет равном нулю. Целые части выписываются после двоичной запятой в порядке их получения.

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

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

1714(10) 380,1875(10) 115,94(10)

1714:10=171 ост. 4        
171:10=17 ост. 1    
17:10=1 ост. 7    
1:10=0 ост.1    
     
в шестнадцатеричную      
           
2638:16=164 ост. 14 е              
164:16=10 ост. 4              
10:16=0 ост. 10 а                  
                     
263810 = а4е 16                  
                         

Если необходимо перевести число из двоичной системы счисления в систему счисления, основанием которой является степень двойки, достаточно объединить цифры двоичного числа в группы по столько цифр, каков показатель степени, и использовать следующий алгоритм. Например, если перевод осуществляется в восьмеричную систему, то группы будут содержать три цифры (8 = 23). В целой части числа группировка производится справа налево, в дробной части – слева направо. Если в последней группе недостает цифр, дописываются нули: в целой части – слева, в дробной – справа. Затем каждая группа заменяется соответствующей цифрой новой системы.

Пример 2. Переведем из двоичной системы в шестнадцатеричную числа 1111010101,11(2), 1101001(2), 1111100(2), а также 1101001(2) в восьмеричную СС.

001111010101,1100(2) = 3D5,C(16)

0110|1001 = 69 h 0111|1100 = 7c h 001|101|001 = 151 8

6 9 7 c 1 5 1


Таблица 1 – Соответствия систем счисления

Десятичная Двоичная Шестнадцатеричная Восьмеричная
 
a  
b  
c  
d  
e  
f  
 

При переводе чисел из системы счисления с основанием Р в десятичную систему счисления необходимо пронумеровать разряды целой части справа налево, начиная с нулевого, и дробной части, начиная с разряда сразу после запятой, слева направо (начальный номер – 1). Затем вычислить сумму произведений соответствующих значений разрядов на основание системы счисления в степени, равной номеру разряда.

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

а) 110001,011(2) = 1×25 + 1×24 + 0×23 + 0×22 + 0×21 + 1×20 + 0×2 –1 + 1×2 –2 + 1×2 –3 =
= 32 + 16 + 1 + 0,25 + 0,125 = 49,375(10)

б) 1216,04(8) = 1×83 + 2×82 + 1×81 + 6×80 + 0×8 –1 + 4×8 –2 =
= 512 + 128 + 8 + 6 + 0,0625 = 654,0625(10)

в) 29А,5(16) = 2×162 + 9×161 + 10×160 + 5×16 –1 =
= 512 + 144 + 10 + 0,3125 = 656,3125(10)

Арифметические операции в СС с основанием Р

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

Для двоичной системы счисления такие таблицы имеют следующий вид:

+   ´
 
 

Пример 4. Сложить числа:

10000000100(2) 223,20(8) 3B3,6(16)
111000010(2)   457,54(8)   38B,4(16)
10111000110(2)   652,74(8)   73B,A(16)

Пример 5. Выполнить вычитание:

1100000011,011(2) 1510,2(8) 27D,D8(16)
101010111,1(2)   1230,54(8)   191 ,2(16)
110101011,111(2)   257,44(8)   EC,B8(16)

Операцию вычитания можно свести к операции сложения с отрицательным числом в силу того, что А – В = А + (–В).

Представление отрицательных чисел в двоичной СС:

- старший разряд метится как знаковый и содержит информацию только о знаке числа: 1 – отрицательное число, 0 – положительное число;

- форма обратного дополнительного кода; перевод производится по следующему алгоритму:

1) инвертировать все разряды числа, кроме знакового разряда;

2) прибавить единицу к полученному коду;

3) восстановить единицу в знаковом разряде.

– 5(10) = 1000 0101 ® 111 1010 + 1 ® 111 1011 ® 1111 1011

Правила вычитания в двоичной системе путем сложения дополнительных кодов:

1) преобразовать отрицательное число из формы со знаком в дополнительный код;

2) выполнить операцию двоичного сложения над всеми разрядами, включая знаковый, игнорируя единицу переноса из самого высокого разряда;

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

Пример 6. Выполнить вычитание: 13 – 15 = 13 + (–15)

1) – 15(10) = 1000 1111 ® 111 0000 + 1 ® 111 0001 ® 1111 0001

2) 0000 1101(2)
  1111 0001(2)
  1111 1110(2)

3) 1111 1110 ® 000 0001 + 1 ® 1000 0010 = –2(10)


Пример 7. Выполнить вычитание: 15 – 13 = 15 + (–13)

1) – 13(10) = 1000 1101 ® 111 0010 + 1 ® 111 0011 ® 1111 0011

2) 0000 1111(2)  
  1111 0011(2)  
  1 0000 0010(2) = 2(10)

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

Пример 8. Выполнить вычитание: 10 0000 0100 – 1 0101 0001

1) 1000 0001 0101 0001 ® 111 1110 1010 1110 + 1 ® 111 1110 1010 1111 ® 1111 1110 1010 1111

2) 0000 0010 0000 0100(2)  
  1111 1110 1010 1111(2)  
  1 0000 0000 1011 0011(2) ® 1011 0011

Пример 9. Выполнить умножение:

´
100111(2)

 
´
1170,64(8)

´

61,A(16)
1000111(2)   46,3(8)   40,D(16)
    4F52
   
    18B7,52(16)
  57334,134(8)    
101011010001(2)        

 



<== предыдущая лекция | следующая лекция ==>
Отношение к засечкам (Serif) | Кодирование числовой информации


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.898 сек.