Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ Общая ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

Python

SQL\T-SQL

FreeBSD and Nix

WEB Разработка

ORACLE SQL \ JAVA

Мото

Стрельба, пневматика, оружие

Саморазвитие и психология


Просто о сложном - биты, байты, системы счисления



Просто о сложном - биты, байты, системы счисления


Очень упрощенный, "на пальцах" рассказ о сложном и страшном

Обработку кода программиста или отданных команд выполняет процессор

Для работы процессора необходимо наличие памяти

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

Рассмотрим алгоритм работы процессора на примере операции умножения:
Выполняется считывание значения первого числа по указанному адресу ячейки памяти
Выполняется считывание значения второго числа по указанному адресу ячейки памяти
Выполняется обработка считанных данных - умножение чисел (полученных значений)
Выполняется запись результата в ячейку памяти

Все данные, которыми оперирует процессор представляют собой последовательность цифр

Процессор понимает и работает с несколькими системами счисления цифр

Информация цифровых запоминающих устройств хранится в памяти

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

Bit - Binary Digit (двоичное число)

Бит - единица измерения объема памяти, в одном бите можно запомнить одно из двух значений: 0 или 1

Байт (byte) равен 8 битам, т. е. восемь ячеек памяти составляют один байт


Десятичная система счисления (человеческая)

У нас есть 10 пальцев на руках, и нам просто и понятно оперировать этим набором чисел

В математике называется десятичной т.к. состоит из 10 цифр - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Если при счете использованы все знаки от 0 до 9, чтоб продолжить дальнейший счет, обнулить предыдущее значение

Т.е. символ 9 заменить на 0, а слева от 0 записать следующий порядковый символ - 1 и т.д со следующими цифрами

Для примера берем число 333 (состоит из трех одинаковых цифр)

Первая слева цифра означает 3 сотни, вторая - 3 десятка, третья - 3 единицы

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

Числа из одной цифры называют однозначными, из двух - двузначными и т.д.

Двоичные числа - последовательности только двух цифр - 0 и 1

Преобразовать десятичное число в двоичное последовательным делением на число 2, пример 22 и 23:

22/2=11 остаток 0
11/2=5 остаток 1
5/2=2 остаток 1
2/2=1 остаток 0
1/2=0 остаток 1

23/2=11 остаток 1
11/2=5 остаток 1
5/2=2 остаток 1
2/2=1 остаток 0
1/2=0 остаток 1

Записав полученные цифры в ряд снизу вверх, получим:
22=10110
23=10111

Преобразовать десятичное число в восьмеричное последовательным делением на число 8, пример 22 и 23:

22/8=2 остаток 6
2/8=0 остаток 2

23/8=2 остаток   7
2/8=0 остаток   2

Записав полученные цифры в ряд снизу вверх, получим:
22=26
23=27


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

Имеет всего лишь две цифры 0 и 1, основание двоичной системы - число 2

Цифра справа указывает количество единиц, вторая цифра - количество двоек, далее - количество четверок и т.д.

Внутри компьютера работают транзисторы, у которых нет знаков 0, 1… 9

Транзисторы могут быть только вкл и выкл

Двоичная система применяется повсюду в электронике, соответствует двум состояниям электроцепи (вкл и выкл)

Люди пишут в десятичной системе число, а компьютер делает это последовательностью состояний транзисторов

Перевод из двоичной системы в десятичную, что в системе всего 2 числа (0 и 1) и множитель не 10, а 2

Обычно двоичные числа пишутся группами для удобства (необязательно) - в каждой по 4 цифры (например, 1100 0111)

Примеры десятичное = двоичное:

0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
8 1000
9 1001

10 1010
11 1011
12 1100
13 1101
14 1110
15 1111
16 10000
17 10001
18 10010
19 10011

20 10100
21 10101
22 10110
23 10111
24 11000
25 11001
26 11010
27 11011
28 11100
29 11101

Т.е. Начиная с 0, добавляем всегда справа 1
Когда справа все символы - 1, переносим 1 на одну позицию влево и заменяем все единицы справа на 0

Перевод из двоичного числа в десятичную систему:
Нужно умножить каждую цифру на 2 в степени равной разряду цифры
Сложить все результаты
Любое число в степени 0 равно единице

Примеры:
0001 = 0*2^3 + 0*2^2 + 0*2^1 + 1*2^0 = 0 + 0 + 0 + 1 = 1
0110 = 0*2^3 + 1*2^2 + 1*2^1 + 0*2^0 = 0 + 4 + 2 + 0 = 6
0111 = 0*2^3 + 1*2^2 + 1*2^1 + 1*2^0 = 0 + 4 + 2 + 1 = 7
1111 = 1*2^3 + 1*2^2 + 1*2^1 + 0*2^0 = 8 + 4 + 2 + 1 = 15


Восьмеричная система счисления

Ччет на пальцах в десятичной, подразумевает задействование всех десяти пальцев

Восьмеричная техника использует не пальцы, а промежутки между ними, которых - 8

Идентична по логике двоичной, основание не 2, а число 8

Десятичная - воьсмеричная соотношения:

0     0
1     1
2     2
3     3
4     4
5     5
6     6
7     7

8     10
9     11
10     12
11     13
12     14
13     15
14     16
15     17

16     20
17     21
18     22
19     23
20     24
21     25
22     26
23     27

Преобразование из восьмеричной в десятичную систему и далее в двоичную:
26^8 = 2·8^1 + 6·8^0 = 16 + 6 = 22
22/2=11 остаток 0, 11/2=5 остаток 1, 5/2=2 остаток 1, 2/2=1 остаток 0, 1/2=0 остаток 1 = 10110


Шестнадцатиричная система счисления

Аналогична восьмеричной и двоичной, основанием шестнадцатеричной системы счисления является число 16

Первыми десятью цифрами из шестнадцати являются числа от 0 до 9

Последующие шесть цифр записывают при помощи первых букв латинского алфавита: A, B, C, D, E, F

Десятичная - Шестнадцатиричная соотношения:

0     0
1     1
2     2
3     3
4     4
5     5
6     6
7     7
8     8
9     9
10     A
11     B
12     C
13     D
14     E
15     F

16     10
17     11
18     12
19     13
20     14
21     15
22     16
23     17
24     18
25     19
26     1a
27     1b
28     1c
29     1d
30     1e
31     1f

32     20
33     21
34     22
35     23
36     24
37     25
38     26
39     27
40     28
41     29
42     2a
43     2b
44     2c
45     2d
46     2e
47     2f

Для перевода числа из шестнадцатиричной системы в десятичную надо:
Взять цифру (пример 5f2a12) - десятичное = 6236690
5f2a12^16 = 5 * 16^5 + 15 * 16^4 + 2 * 16^3 + 10 * 16^2 + 1 * 16^1 + 2 * 16^0 = 6236690

Преобразование из шестнадцатеричной в десятичную систему (еще примеры):
2a^16 = 2 * 16^1 + 10 * 16^0 = 42
3c^16 = 3 * 16^1 + 12 * 16^0 = 60
20^16 = 2 * 16^1 + 0 * 16^0 = 32
7^16 = 7 * 16^0 = 7
5d^16 = 5 * 16^1 + 13 * 16^0 = 93

 


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

© Snakeproject.ru создан в 2013 году.
При копировании материала с сайта - оставьте ссылку.
Весь материал на сайте носит ознакомительный характер,
за его использование другими людьми, автор ответственности не несет.

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика





Поддержать автора и проект