Skip to main content

Базовые понятия 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:

Десятичный кодСимволДесятичный кодСимволДесятичный кодСимволДесятичный кодСимвол
0NUL32SPACE64@96`
1SOH33!65A97a
2STX34"66B98b
3ETX35#67C99c
4EOT36$68D100d
5ENQ37%69E101e
6ACK38&70F102f
7BEL39'71G103g
8BS40(72H104h
9HT41)73I105i
10LF42*74J106j
11VT43+75K107k
12FF44,76L108l
13CR45-77M109m
14SO46.78N110n
15SI47/79O111o
16DLE48080P112p
17DC149181Q113q
18DC250282R114r
19DC351383S115s
20DC452484T116t
21NAK53585U117u
22SYN54686V118v
23ETB55787W119w
24CAN56888X120x
25EM57989Y121y
26SUB58:90Z122z
27ESC59;91[123{
28FS60<92\124|
29GS61=93]125}
30RS62>94^126~
31US63?95_127DEL

Unicode

Unicode - это стандарт кодирования символов, который используется для представления текста на компьютере. Unicode был разработан в 1990-х годах и стал стандартом для кодирования текста на компьютере. Unicode использует 16 битов для кодирования символов, что позволяет представить 65536 символов. Unicode включает в себя символы различных языков, алфавитов и письменностей, что позволяет использовать один стандарт для представления текста на различных языках. Unicode включает в себя символы ASCII, что позволяет использовать Unicode вместо ASCII для кодирования текста на компьютере.