P
pro·school.ru
Каталог школ

Системы счисления и точность вычислений

💻 Информатика · 11 класс

Что такое система счисления

Система счисления — это способ записи чисел с помощью набора символов и правил. В позиционной системе значение цифры зависит от её места (позиции) в записи. Основание системы показывает, сколько различных цифр в ней используется. В двоичной системе их две, в десятичной — десять, в шестнадцатеричной — шестнадцать.

Компьютер работает в двоичной системе, потому что его электронные элементы имеют два устойчивых состояния. Программисты используют шестнадцатеричную систему как компактную запись длинных двоичных чисел, где одна цифра заменяет четыре двоичных разряда.

Перевод между системами

Чтобы перевести число в десятичную систему, каждую цифру умножают на основание в степени, равной номеру её позиции, и складывают полученные слагаемые.

Двоичное 1011 в десятичное: 1*8 + 0*4 + 1*2 + 1*1 = 11 Двоичное 11111111 в десятичное: сумма степеней двойки от 0 до 7 = 255

Обратный перевод из десятичной в двоичную выполняют делением числа на основание с остатком, после чего остатки читают снизу вверх.

ДесятичноеДвоичноеШестнадцатеричное
101010A
151111F
161000010
25511111111FF

Дробные числа и точность

Многие десятичные дроби нельзя точно представить в двоичной системе. Например, число 0,1 в двоичной записи бесконечно, подобно тому как дробь 1/3 бесконечна в десятичной. Поэтому компьютер хранит такие числа приближённо, и при вычислениях накапливается ошибка округления.

0,1 + 0,2 в компьютере может дать 0,30000000000000004 Причина: числа 0,1 и 0,2 хранятся не точно, а приближённо

Числа с плавающей запятой имеют ограниченное число значащих цифр, поэтому очень большие и очень маленькие значения тоже теряют точность при хранении и расчётах.

Целые числа и переполнение

Целые числа компьютер хранит точно, но в ограниченном диапазоне, который зависит от числа отведённых разрядов. Если результат вычисления выходит за этот диапазон, происходит переполнение, и значение становится неверным. Чем больше разрядов отводится под число, тем шире диапазон.

РазрядовРазличных значенийНаибольшее без знака
8256255
166553665535
32около 4 миллиардов4294967295

Поэтому при работе с большими числами программисты заранее выбирают подходящий тип данных, чтобы избежать переполнения и потери точности.

Частые ошибки. Сравнивают дробные числа на точное равенство — из-за округления это ненадёжно, лучше проверять близость с малой погрешностью. Путают разряды при переводе и забывают, что любое основание в нулевой степени равно единице.

Кратко о главном

  • Система счисления задаётся основанием и набором цифр.
  • Компьютер использует двоичную систему, программисты — шестнадцатеричную.
  • Перевод в десятичную — через сумму цифр на степени основания.
  • Дробные числа хранятся приближённо, что вызывает ошибки округления.