Базовые понятия Computer Science
Что такое исполняемый код
Исполняемый код - это набор инструкций, которые выполняются процессором компьютера. Исполняемый код представляет собой набор инструкций, которые выполняются последовательно и записываются в виде двоичного кода (нули и единицы).
Что такое язык программирования
Язык программирования - это специальный язык, похожий на человеческие языки, который используется для написания программ. Чаще всего используется английский язык.
Разница между языком программирования и исполняемым кодом
Язык программирования - это язык созданны й для удобства программиста он человеко-читаемый. Исполняемый код - это набор инструкций, которые выполняются процессором компьютера, его очень сложно понять человеку. При этом процессор понимает только исполняемый код, поэтому программу на языке программирования нужно перевести в исполняемый код, данный процесс называется трасляцией.
Компилятор, Интерпретатор их сходства и различия
Компилятор и интерпретатор - это программы, которые переводят программу на языке программирования в исполняемый код. в процессе работы обоих программ происходит трасляция программы на языке программирования в исполняемый код, но помимо этого происходит оптимизация кода, проверка на ошибки и т.д.
Разница между компилятором и интерпретатором заключается в том когда и как происходит трасляция.
Компилятор полностью переводит программу на языке программирования в исполняемый код и создает исполняемый файл для конкретной платформы (например .exe файл для windows), из чего следует что если нам нужно запустить программу на windows, linux и mac нам нужно создать три исполняемых файла, при этом нам не нужен файл с исходным кодом для запуска программы а так же нам не нужен компилятор на компьютере где будет запущена программа, так как весь код уже переведен в исполняемый код.
Интерпретатор переводит программу на языке программирования в исполняемый код построчно, во время выполнения программы, интерпертатор сам определяет платформу на которой запущена программа и переводит код в исполняемый код для этой платформы, из чего следует что нам не нужно создавать исполняемый файл для каждой платформы, но нам нужен интерпретатор на компьютере где будет запущена программа, а так же исходный код программы.
Где хранятся переменные
Переменные хранятся в оперативной памяти компьюте ра. Оперативная память - это память компьютера, которая используется для хранения данных во время выполнения программы. Переменные хранятся в оперативной памяти в виде двоичного кода (нули и единицы). Все созданные переменные удаляются из оперативной памяти после завершения программы.
Системы счисления
Система счисления (Numeral system) - это способ представления чисел. Существует несколько систем счисления, но наиболее распространенные это десятичная, двоичная и шестнадцатеричная системы счисления.
Десятичная система счисления
Десятичная система счисления (Decimal numeral system) - это система счисления, в которой используются 10 цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. В десятичной системе счисления каждая цифра имеет свое значение в зависимости от позиции цифры. Например, число 123 в десятичной системе счисления представляет собой число.
(1 \* 10^2) + (2 \* 10^1) + (3 \* 10^0) = 100 + 20 + 3 = 123
.
Шестнадцатеричная система счисления
Шестнадцатеричная система счисления (Hexadecimal numeral system) - это система счисления, в которой используются 16 цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. В шестнадцатеричной системе счисления каждая цифра имеет свое значение в зависимости от позиции цифры. Например, число 1A3 в шестнадцатеричной системе счисления представляет собой число. Шестнадцатеричное число при записи начинается с префикса 0x
. Например, число 1A3 в шестнадцатеричной системе счисления записывается как 0x1A3
.
(1 \* 16^2) + (A \* 16^1) + (3 \* 16^0) = 256 + 10 \* 16 + 3 = 419
.
Что значат буквы в шестнадцатеричной системе счисления:
A = 10
B = 11
C = 12
D = 13
E = 14
F = 15
Чтобы проще переводить числа из десятичной системы счисления в шестнадцатеричную и наоборот, можно запомнить таблицу умножения на 16:
16*1 = 16
16*2 = 32
16*3 = 48
16*4 = 64
16*5 = 80
16*6 = 96
16*7 = 112
16*8 = 128
16*9 = 144
16*10 = 160
16*11 = 176
16*12 = 192
16*13 = 208
16*14 = 224
16*15 = 240
16*16 = 256
чтобы перевести число 0xAC
нам нужно подставить в разряды в которых число равно 1 число из верхнего списка, и сложить их:
A - третий разряд = 10
C - второй разряд = 12
число 10 в верхнем списке равно 160
остается сложить все числа:
160 + 12 = 172
Восьмеричная система счисления
Восьмиричная система счисления (Octal numeral system) - это система счисления, в которой используются 8 цифр: 0, 1, 2, 3, 4, 5, 6, 7. В восьмеричной системе счисления каждая цифра имеет свое значение в зависимости от позиции цифры. Например, число 123 в восьмеричной системе счисления представляет собой число. Восьмеричное число при записи начинается с префикса 0
или 0o
. Например, число 123 в восьмеричной системе счисления записывается как 0123
или 0o123
.
(1 \* 8^2) + (2 \* 8^1) + (3 \* 8^0) = 64 + 16 + 3 = 83
.
Чтобы проще переводить числа из десятичной системы счисления в восьмеричную и наоборот, можно запомнить таблицу умножения на 8:
8*1 = 8
8*2 = 16
8*3 = 24
8*4 = 32
8*5 = 40
8*6 = 48
8*7 = 56
8*8 = 64
Чтобы перевести число 0o67
нам нужно умножить старший разряд на 8 и прибавить младший:
6 - второй разряд = 6
7 - первый разряд = 7
6 * 8 = 48
остается сложить все числа:
48 + 7 = 55
Двоичная система счисления
Двоичная система счисления (Binary numeral system) - это система счисления, в которой используются 2 цифры: 0 и 1. В двоичной системе счисления каждая цифра имеет свое значение в зависимости от позиции цифры. Например, число 101 в двоичной системе счисления представляет собой число. Двоичное число при записи начинается с префикса 0b
. Например, число 101 в двоичной системе счисления записывается как 0b101
.
(1 \* 2^2) + (0 \* 2^1) + (1 \* 2^0) = 4 + 0 + 1 = 5
.
Чтобы проще переводить числа из десятичной системы счисления в двоичную и наоборот, можно запомнить степени двойки от 1 до 7:
2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128
чтобы перевести число 10111011 нам нужно подставить в разряды в которых число равно 1 число из верхнего списка, и сложить их:
1 - восьмой разряд = 128
0 - седьмой разряд = 0
1 - шестой разряд = 32
1 - пятый разряд = 16
1 - четвертый разряд = 8
0 - третий разряд = 0
1 - второй разряд = 2
1 - первый разряд = 1
остается сложить все числа:
128 + 0 + 32 + 16 + 8 + 0 + 2 + 1 = 187
бит, байт, килобайт, мегабайт, гигабайт, терабайт
Данные в компьютере хранятся в виде битов и байтов. Бит (Bit) - это минимальная единица информации, которая может принимать два значения: 0 или 1. Однако биты неудобно использовать для хранения информации, поэтому они объединяются в байты. Байт (Byte) - это восемь битов. Байт используется для хранения символов, чисел и других данных, и фактически является минимальной единицей хранения данных в компьютере. Килобайт (Kilobyte) - это 1024 байта. Мегабайт (Megabyte) - это 1024 килобайта. Гигабайт (Gigabyte) - это 1024 мегабайта. Терабайт (Terabyte) - это 1024 гигабайта.
Что такое число с плавающей запятой/точкой
Число с плавающей запятой (Floating-point number) - это число, которое представляет собой дробное число с плавающей точкой. Основной проблемой сохрнанения дробных чисел в компьютере является то что компьютер хранит только целые числа, поэтому для хранения дробных чисел используется специальный формат хранения чисел с плавающей точкой. Число с плавающей точкой состоит из двух частей: мантиссы и экспоненты. Мантисса - это дробная часть числа, а экспонента - это степень числа 10, на которую нужно умножить мантиссу. Например, число 123.45 в формате числа с плавающей точкой представляется как 1.2345 * 10^2
. Так же стоит упомянуть что числа с плавающей точкой сохраняются в двоичной системе счисления, из-за этого возникают проблемы с точностью вычислений, самым известным примером является число 0.1
которое в двоичной системе счисления представляется как 0.0001100110011001100110011001100110011001100110011001100110011001101
и не может быть точно представлено в двоичной системе счисления, из-за этого возникают ошибки округления, к примеру в javascript 0.1 + 0.2 === 0.3
вернет false
.
Что такое ASCII и Unicode
ASCII (American Standard Code for Information Interchange) - это стандарт кодирования символов, который используется для представления текста на компьютере. ASCII кодирует символы с помощью 7 или 8 битов, что позволяет представить 128 или 256 символов соответственно. ASCII использует 7 битов для кодирования символов, что позволяет представить 128 символов, включая буквы, цифры, знаки препинания и специальные символы. ASCII кодировка была разработана в 1960-х годах и стала стандартом для кодирования текста на компьютере.
Таблица ASCII:
Десятичный код | Символ | Десятичный код | Символ | Десятичный код | Символ | Десятичный код | Символ |
---|---|---|---|---|---|---|---|
0 | NUL | 32 | SPACE | 64 | @ | 96 | ` |
1 | SOH | 33 | ! | 65 | A | 97 | a |
2 | STX | 34 | " | 66 | B | 98 | b |
3 | ETX | 35 | # | 67 | C | 99 | c |
4 | EOT | 36 | $ | 68 | D | 100 | d |
5 | ENQ | 37 | % | 69 | E | 101 | e |
6 | ACK | 38 | & | 70 | F | 102 | f |
7 | BEL | 39 | ' | 71 | G | 103 | g |
8 | BS | 40 | ( | 72 | H | 104 | h |
9 | HT | 41 | ) | 73 | I | 105 | i |
10 | LF | 42 | * | 74 | J | 106 | j |
11 | VT | 43 | + | 75 | K | 107 | k |
12 | FF | 44 | , | 76 | L | 108 | l |
13 | CR | 45 | - | 77 | M | 109 | m |
14 | SO | 46 | . | 78 | N | 110 | n |
15 | SI | 47 | / | 79 | O | 111 | o |
16 | DLE | 48 | 0 | 80 | P | 112 | p |
17 | DC1 | 49 | 1 | 81 | Q | 113 | q |
18 | DC2 | 50 | 2 | 82 | R | 114 | r |
19 | DC3 | 51 | 3 | 83 | S | 115 | s |
20 | DC4 | 52 | 4 | 84 | T | 116 | t |
21 | NAK | 53 | 5 | 85 | U | 117 | u |
22 | SYN | 54 | 6 | 86 | V | 118 | v |
23 | ETB | 55 | 7 | 87 | W | 119 | w |
24 | CAN | 56 | 8 | 88 | X | 120 | x |
25 | EM | 57 | 9 | 89 | Y | 121 | y |
26 | SUB | 58 | : | 90 | Z | 122 | z |
27 | ESC | 59 | ; | 91 | [ | 123 | { |
28 | FS | 60 | < | 92 | \ | 124 | | |
29 | GS | 61 | = | 93 | ] | 125 | } |
30 | RS | 62 | > | 94 | ^ | 126 | ~ |
31 | US | 63 | ? | 95 | _ | 127 | DEL |
Unicode
Unicode - это стандарт кодирования символов, который используется для представления текста на компьютере. Unicode был разработан в 1990-х годах и стал стандартом для кодирования текста на компьютере. Unicode использует 16 битов для кодирования символов, что позволяет представить 65536 символов. Unicode включает в себя символы различных языков, алфавитов и письменностей, что позволяет использовать один стандарт для представления текста на различных языках. Unicode включает в себя символы ASCII, что позволяет использовать Unicode вместо ASCII для кодирования текста на компьютере.