Системы счисления и точность вычислений
💻 Информатика · 11 класс
Что такое система счисления
Система счисления — это способ записи чисел с помощью набора символов и правил. В позиционной системе значение цифры зависит от её места (позиции) в записи. Основание системы показывает, сколько различных цифр в ней используется. В двоичной системе их две, в десятичной — десять, в шестнадцатеричной — шестнадцать.
Компьютер работает в двоичной системе, потому что его электронные элементы имеют два устойчивых состояния. Программисты используют шестнадцатеричную систему как компактную запись длинных двоичных чисел, где одна цифра заменяет четыре двоичных разряда.
Перевод между системами
Чтобы перевести число в десятичную систему, каждую цифру умножают на основание в степени, равной номеру её позиции, и складывают полученные слагаемые.
Двоичное 1011 в десятичное:
1*8 + 0*4 + 1*2 + 1*1 = 11
Двоичное 11111111 в десятичное:
сумма степеней двойки от 0 до 7 = 255Обратный перевод из десятичной в двоичную выполняют делением числа на основание с остатком, после чего остатки читают снизу вверх.
| Десятичное | Двоичное | Шестнадцатеричное |
|---|---|---|
| 10 | 1010 | A |
| 15 | 1111 | F |
| 16 | 10000 | 10 |
| 255 | 11111111 | FF |
Дробные числа и точность
Многие десятичные дроби нельзя точно представить в двоичной системе. Например, число 0,1 в двоичной записи бесконечно, подобно тому как дробь 1/3 бесконечна в десятичной. Поэтому компьютер хранит такие числа приближённо, и при вычислениях накапливается ошибка округления.
0,1 + 0,2 в компьютере может дать 0,30000000000000004
Причина: числа 0,1 и 0,2 хранятся не точно, а приближённоЧисла с плавающей запятой имеют ограниченное число значащих цифр, поэтому очень большие и очень маленькие значения тоже теряют точность при хранении и расчётах.
Целые числа и переполнение
Целые числа компьютер хранит точно, но в ограниченном диапазоне, который зависит от числа отведённых разрядов. Если результат вычисления выходит за этот диапазон, происходит переполнение, и значение становится неверным. Чем больше разрядов отводится под число, тем шире диапазон.
| Разрядов | Различных значений | Наибольшее без знака |
|---|---|---|
| 8 | 256 | 255 |
| 16 | 65536 | 65535 |
| 32 | около 4 миллиардов | 4294967295 |
Поэтому при работе с большими числами программисты заранее выбирают подходящий тип данных, чтобы избежать переполнения и потери точности.
Частые ошибки. Сравнивают дробные числа на точное равенство — из-за округления это ненадёжно, лучше проверять близость с малой погрешностью. Путают разряды при переводе и забывают, что любое основание в нулевой степени равно единице.
Кратко о главном
- Система счисления задаётся основанием и набором цифр.
- Компьютер использует двоичную систему, программисты — шестнадцатеричную.
- Перевод в десятичную — через сумму цифр на степени основания.
- Дробные числа хранятся приближённо, что вызывает ошибки округления.