- •Реферат
- •Системы счисления. Описание понятия. Позиционные и непозиционные системы. Принципы перевода из одной системы счисления в другую.
- •Введение.
- •Непозиционные системы счислений.
- •Позиционные системы счислений. Введение.
- •Преобразование чисел.
- •Шестидесятеричная система счисления.
- •Двоичная система счисления.
- •Перевод из одной системы счисления в другую.
Двоичная система счисления.
В компьютерной технике очень часто используется двоичная система счисления. Такую систему очень легко реализовать в железе (кремнии, транзисторах, микросхемах).
Двоичная система счисления является позиционной системой. В ней используется две цифры: 0 и 1. В железе это может быть реализовано присутствием какого-либо физического явления или его отсутствием. Например: есть электрический заряд или его нет, есть напряжение или нет, есть ток или нет, есть сопротивление или нет, отражает свет или нет, намагничено или ненамагничено, есть дырка или нет и т.п.
Мы уже знаем, как переводить числа в различные системы счисления. Посмотрим, как это происходит с двоичной системой счисления. Переведем число в двоичной системе счисления в десятичную.
;
Вы это можете проверить на калькуляторе в Windows. Он умеет производить расчеты в двоичной, восьмеричной и шестнадцатиричной системах счисления. Теперь вы знаете, как он это проделывает. Если вы заходите посвятить свою жизнь программированию, то вам часто придется работать со степенями двойки. Хорошо бы было их вам поскорее выучить. Вот таблица:
Степень |
Значение |
0 |
1 |
1 |
2 |
2 |
4 |
3 |
8 |
4 |
16 |
5 |
32 |
6 |
64 |
7 |
128 |
8 |
256 |
9 |
512 |
10 |
1024 |
11 |
2048 |
12 |
4096 |
13 |
8192 |
14 |
16384 |
15 |
32768 |
16 |
65536 |
Произведем обратное преобразование. Чтобы преобразовать число в десятичном виде к двоичному, нам нужно будет делить все время на два и смотреть на остаток от деления. Возьмем число 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;
Получили 1000012.
Возьмем число 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.
Получили 1101112.
Приведу еще примеры со сложением, вычитанием, умножением и делением.
Сложение:
1001
1010
----
10011
Вычитание:
1110
0101
----
1001
Умножение:
1110
0101
----
1110
0000
1110
0000
-------
1000110
Деление:
1000110|101
101 -----
---- 0001110
111
101
---
101
101
---
00
Восьмеричная и шестнадцатеричная системы счислений
Компьютерам очень удобно оперировать двоичными числами, но люди не привыкли работать с большим количеством цифр. Например, чтобы представить в двоичном виде число 1234 потребуется больше 10 двоичных цифр (10011010010). Поэтому были придуманы восьмеричная и шестнадцатеричная системы счислений. Они удобны как и десятичные числа тем, что для представления числа требуется меньшее количество разрядов. А по сравнению с десятичными числами, перевод в двоичное представление очень простой. Это как будто мы двоичное число разбили на группы по три или четыре разряда и каждой двоичной комбинации придумали значок. Вот таблица для восьмеричных цифр:
Двоичная комбинация |
Значок |
000 |
0 |
001 |
1 |
010 |
2 |
011 |
3 |
100 |
4 |
101 |
5 |
110 |
6 |
111 |
7 |
А вот таблица для шестнадцатеричных цифр:
Двоичная комбинация |
Значок |
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 |
Перевод произвести очень просто, посмотрим на примере числа 10011010010.
Разбиваем его на группы по три цифры: 010 011 010 010. И по таблице переводим: 23228.
Чтобы перевести число в шестнадцатеричное представление разбиваем двоичное число на группы по четыре цифры: 0100 1101 0010. И по таблице переводим: 4D216. С помощью калькулятора Windows мы можем убедиться, что все проделано верно.
В программистских кругах шестнадцатеричные числа принято предварять значком 0x (например, 0x4D2), такое написание пошло от языка программирования C, либо значком $ (например, $4D2), такая нотация произошла от языка программирования Pascal. Иногда в литературе используют буквы "h" и "b" для обозначения соответственно шестнадцатеричных и двоичных чисел (например, FFh или 1011b).