Читайте также:
|
|
История систем счисления
Представление числовой информации в памяти ЭВМ
Задачи по позиционным системам счисления
Контрольные вопросы и задания
• Дать определение системы счисления. Назвать и охарактеризовать свойства системы счисления.
• Какие символы используются для записи чисел в двоичной системе счисления, восьмеричной, шестнадцатеричной?
• Чему равны веса разрядов слева от точки, разделяющей целую и дробную часть, в двоичной системе счисления (восьмеричной, шестнадцатеричной)?
• Чему равны веса разрядов справа от точки, разделяющей целую и дробную часть, в двоичной системе счисления (восьмеричной, шестнадцатеричной)?
• Преобразуйте следующие десятичные числа в двоичные (восьмеричные, шестнадцатеричные): 0, 1, 18, 25, 128.
• Дешифруйте следующие двоичные числа, преобразовав их в десятичные: 0010, 1011, 11101, 0111, 0101.
• Дешифруйте следующие восьмеричные числа, преобразовав их в десятичные: 777, 375, 111, 1015.
• Дешифруйте следующие шестнадцатеричные числа, преобразовав их в десятичные: 15, A6, 1F5, 63.
Во избежание путаницы при одновременной работе с несколькими системами счисления основание указывается в качестве нижнего индекса:
Например, число сто три представляется в десятичной системе счисления в виде:
Например:
1011002 =
= 1 · 25 + 0 · 24 + 1 · 23 + 1 · 22 + 0 · 21 + 0 · 20 =
= 1 · 32 + 0 · 16 + 1 · 8 + 1 · 4 + 0 · 2 + 0 · 1 =
= 32 + 8 + 4 + 0 = 4410
Перевод из десятичной системы счисления
Целая часть
• Последовательно делить целую часть десятичного числа на основание, пока десятичное число не станет равно нулю.
• Полученные при делении остатки являются цифрами нужного числа. Число в новой системе записывают, начиная с последнего остатка.
Дробная часть
• Дробную часть десятичного числа умножаем на основание системы, в которую требуется перевести. Отделяем целую часть. Продолжаем умножать дробную часть на основание новой системы, пока она не станет равной 0.
• Число в новой системе составляют целые части результатов умножения в порядке, соответствующем их получению.
Пример
переведём в двоичную систему:
44 делим на 2. частное 22, остаток 0
22 делим на 2. частное 11, остаток 0
11 делим на 2. частное 5, остаток 1
5 делим на 2. частное 2, остаток 1
2 делим на 2. частное 1, остаток 0
1 делим на 2. частное 0, остаток 1
Частное равно нулю, деление закончено. Теперь записав все остатки снизу вверх получим число
Возьмём для примера полюбившееся нам число и получим представление этого числа в двоичной системе счисления:
• , остаток ;
• , остаток ;
• , остаток ;
• , остаток ;
• , остаток .
Что и следовало ожидать, получили: .
Представим число 25 в троичной системе счисления:
• , остаток ;
• , остаток ;
• , остаток .
Получили число: .
Для закрепления наших знаний проделаем вычисления для восьмеричной и десятичной систем счисления.
Восьмеричная система счисления:
• , остаток ;
• , остаток .
Результат: .
Десятичная система счисления:
• , остаток ;
• , остаток .
Результат: .
Чтобы ещё лучше понять перевод в различные системы счислений, посмотрим, какие трансформации происходят внутри числа .
Представим это число в виде
.
Посмотрим, что у нас получится при последовательном делении на :
• делим на , получаем и в остатке;
• делим ещё раз на , получаем и в остатке;
• и ещё раз делим на , получаем и в остатке;
• делим в последний раз на , получаем и в остатке.
Двоичная система счисления
В компьютерной технике очень часто используется двоичная система счисления. Такую систему очень легко реализовать в электронике (кремнии, транзисторах, микросхемах), так как для неё требуется всего два устойчивых состояния (0 и 1).
Двоичная система счисления может быть непозиционной и позиционной системой. В ней используется две цифры: 0 и 1. В железе это может быть реализовано присутствием какого-либо физического явления или его отсутствием. Например: есть электрический заряд или его нет, есть напряжение или нет, есть ток или нет, есть сопротивление или нет, отражает свет или нет, намагничено или ненамагничено, есть отверстие или нет и т. п.
Мы уже знаем, как переводить числа в различные системы счисления. Посмотрим, как это происходит с двоичной системой счисления. Переведём число из двоичной системы счисления в десятичную.
;
Вы это можете проверить на программе-калькуляторе (gcalctool в gnome, Kcalc в KDE, или калькулятор в Windows). Он умеет производить расчёты в двоичной, восьмеричной и шестнадцатиричной системах счисления. Теперь вы знаете, как он это проделывает. Если вы захотите посвятить свою жизнь программированию, то вам часто придётся работать со степенями двойки. Ниже представлена таблица:
Степень | Значение |
Произведём обратное преобразование. Чтобы преобразовать число в десятичном виде к двоичному, нам нужно будет делить всё время на два и смотреть на остаток от деления. Возьмём число 33.
• 33: 2 = 16 остаток 1;
• 16: 2 = 8 остаток 0;
• 8: 2 = 4 остаток 0;
• 4: 2 = 2 остаток 0;
• 2: 2 = 1 остаток 0;
• 1: 2 = 0 остаток 1;
Получили .
Возьмём число 55. Посмотрим, что получится.
• 55: 2 = 27 остаток 1;
• 27: 2 = 13 остаток 1;
• 13: 2 = 6 остаток 1;
• 6: 2 = 3 остаток 0;
• 3: 2 = 1 остаток 1;
• 1: 2 = 0 остаток 1.
Получили .
Ниже приведены ещё примеры со сложением, вычитанием, умножением и делением.
Сложение:
----
Вычитание:
----
Умножение:
----
-------
Деление:
1000110|101
101 -----
---- 0001110
---
---
Программа двоичного представления десятичного числа (Написана на 0108180718001003100000810020000818Си)
#include <stdio.h>
#include <conio.h>
void dv(unsigned);
int main(int argc, char **argv)
{
unsigned x;
printf("Vvedite chislo > ");
scanf("%d", &x);
dv(x);
getch();
return 0;
}
void dv(unsigned x)
{
unsigned mask = 1, i;
mask <<= sizeof(unsigned) * 8 - 1;
for(i = 1; i <= sizeof(unsigned) * 8; i++)
{
printf("%c", x & mask? '1': '0');
x <<= 1;
if(!(i % 8))
printf(" ");
}
printf(" \n ");
}
Десятичная система | Двоичная система | Шестнадцатеричная система |
A | ||
B | ||
C | ||
D | ||
E | ||
F | ||
Пример: сложение двух чисел
1001+1010 = 10011
910+1010 = 1910
0+0 = 0 0-0 = 0 0*0 = 0
1+0 = 1 1-0 = 1 1*0 = 0
0+1 = 1 0-1 = 1 0*1 = 0
1+1 = 1 1-1 = 0 1*1 = 1
Для увеличения или уменьшения двоичного числа на порядок применяются операция сдвига вправо или влево (SRR и SRL)
Пример: Операция SRL
преобразуется в
Перевод целых чисел в другие системы счисления
Целое число с основанием 10 переводится в систему счисления с основанием 2 путем последовательного деления числа, на основание 2 до получения остатка. Полученные остатки от деления и последнее частное записываются в порядке, обратном полученному при делении. Сформированное число и будет являться числом с основанием N2.
Перевод чисел в десятичную систему осуществляется путем составления степенного ряда с основанием той системы, из которой число переводится. Затем подсчитывается значение суммы.
Пример.
а) Перевести 10101101 с.с.
101011012 = 1*2^7+ 0*2^6+ 1*2^5+ 0*2^4+ 1*2^3+ 1*2^2+ 0*2^1+ 1*2^0 = 173
б) Перевести 7038.
7038 = 7*8^2+ 0*8^1+ 3*8^0= 451
в) Перевести B2E16.
B2E16 = 11*16^2+ 2*16^1+ 14*16^0= 2862
Правила перевода чисел из одной системы счисления в другую
Перевод чисел из одной системы счисления в другую составляет важную часть машинной арифметики. Рассмотрим основные правила перевода.
1. Для перевода двоичного числа в десятичное необходимо его записать в виде многочлена, состоящего из произведений цифр числа и соответствующей степени числа 2, и вычислить по правилам десятичной арифметики:
При переводе удобно пользоваться таблицей степеней двойки:
Таблица 4. Степени числа 2
n (степень) | |||||||||||
Пример. Число перевести в десятичную систему счисления.
2. Для перевода восьмеричного числа в десятичное необходимо его записать в виде многочлена, состоящего из произведений цифр числа и соответствующей степени числа 8, и вычислить по правилам десятичной арифметики:
При переводе удобно пользоваться таблицей степеней восьмерки:
Таблица 5. Степени числа 8
n (степень) | |||||||
Пример. Число перевести в десятичную систему счисления.
3. Для перевода шестнадцатеричного числа в десятичное необходимо его записать в виде многочлена, состоящего из произведений цифр числа и соответствующей степени числа 16, и вычислить по правилам десятичной арифметики:
При переводе удобно пользоваться таблицей степеней числа 16:
Таблица 6. Степени числа 16
n (степень) | |||||||
Пример. Число перевести в десятичную систему счисления.
Для перевода десятичного числа в двоичную систему его необходимо последовательно делить на 2 до тех пор, пока не останется остаток, меньший или равный 1. Число в двоичной системе записывается как последовательность последнего результата деления и остатков от деления в обратном порядке.
Пример. Число перевести в двоичную систему счисления.
Для перевода десятичного числа в восьмеричную систему его необходимо последовательно делить на 8 до тех пор, пока не останется остаток, меньший или равный 7. Число в восьмеричной системе записывается как последовательность цифр последнего результата деления и остатков от деления в обратном порядке.
Пример. Число перевести в восьмеричную систему счисления.
Для перевода десятичного числа в шестнадцатеричную систему его необходимо последовательно делить на 16 до тех пор, пока не останется остаток, меньший или равный 15. Число в шестнадцатеричной системе записывается как последовательность цифр последнего результата деления и остатков от деления в обратном порядке.
Пример. Число перевести в шестнадцатеричную систему счисления.
Чтобы перевести число из двоичной системы в восьмеричную, его нужно разбить на триады (тройки цифр), начиная с младшего разряда, в случае необходимости дополнив старшую триаду нулями, и каждую триаду заменить соответствующей восьмеричной цифрой (табл. 3).
Пример. Число перевести в восьмеричную систему счисления.
Чтобы перевести число из двоичной системы в шестнадцатеричную, его нужно разбить на тетрады (четверки цифр), начиная с младшего разряда, в случае необходимости дополнив старшую тетраду нулями, и каждую тетраду заменить соответствующей восьмеричной цифрой (табл. 3).
Пример. Число перевести в шестнадцатеричную систему счисления.
Дата добавления: 2015-12-08; просмотров: 324 | Нарушение авторских прав