"Информатика (в 2-х частях)", Горячев А.В., Герасимова В.Г., Макарина Л.А., Островский С.Л., Паволоцкий А.В., Семёнов А.А., Юдина А.Г., Чернышёва Т.Л.
Сложение и вычитание в системах счисления с разными основаниями выполняют по разрядам, как и в десятичной системе, но перенос и заём зависят от основания. Например, в двоичной системе перенос возникает при сумме 2, а в пятеричной — при сумме 5. Чтобы получить верный результат, нужно учитывать входящий перенос, записывать допустимую цифру и проверять заём. Эти правила помогают считать в двоичной системе и понимать, как устроена арифметика в компьютере.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Система счисления с основанием b — способ записывать числа, в котором используют цифры от 0 до b − 1. Основание b задаёт и набор цифр, и веса разрядов: это степени основания. Например, в системе с основанием 5 есть цифры 0, 1, 2, 3, 4, а каждый следующий разряд справа налево в пять раз весомее предыдущего. В позиционной записи основание больше единицы.
Разряд числа — позиция, которую занимает цифра в записи числа. Разряд с номером k имеет вес bk, поэтому цифра в нём обозначает количество единиц такого веса. Например, в числе 2435 цифра 2 стоит в разряде веса 5² и означает две единицы веса 25. Разряды нужны, чтобы представить число как сумму частей разного веса.
Перенос при сложении — переход части суммы в следующий, более старший разряд. Когда в разряде набирается b единиц, их заменяют одной единицей веса b раз больше. Например, при сложении в двоичной системе две единицы одного разряда дают 10₂: в текущем разряде записывают 0, а 1 переносят в следующий. Так разряд сохраняет только допустимую цифру.
Заём при вычитании — замена одной единицы старшего разряда на b единиц соседнего младшего. Это делают, если цифры уменьшаемого в текущем разряде не хватает для вычитания. Например, в пятеричной системе заём добавляет к младшему разряду 5 единиц, а не 10. Заём помогает выполнить вычитание, не меняя значения всего числа.
Складывать числа удобно справа налево, потому что именно справа находятся младшие разряды, а их веса последовательно равны 1, b, b² и далее. Две цифры одного разряда относятся к одному и тому же весу, поэтому сначала можно сложить именно их. Если перейти к следующему разряду, его вес будет в b раз больше. Получается, что перенос естественно передаёт туда полные группы по b единиц.
Для каждого разряда складывают его цифры и входящий перенос, если он есть. Полученную сумму делят на основание b: остаток становится цифрой результата в этом разряде, а частное — переносом в следующий. Например, при сумме 12 в системе с основанием 5 остаток равен 2, а частное равно 2, значит, записывают 2 и переносят 2. Такой способ работает и тогда, когда сумма больше основания на несколько групп.
Вычитание тоже начинают с младших разрядов, потому что заём берут у ближайшего старшего разряда. Если цифра уменьшаемого меньше цифры вычитаемого, одной единицы текущего разряда не хватает. Заём из соседнего разряда добавляет к текущему b единиц, поскольку старший разряд весит в b раз больше. После этого в старшем разряде становится на единицу меньше.
Проверить вычитание можно обратным действием: к разности прибавить вычитаемое и получить уменьшаемое. Это помогает обнаружить ошибку в цифре или займе, но не заменяет само вычисление. Ещё один способ проверки — перевести числа в десятичную систему и сравнить их значения. Такой перевод служит проверкой арифметики, а правила вычисления в исходном основании остаются теми же.
При любом основании нужно следить, чтобы все цифры были допустимы: от 0 до b − 1. Перенос возникает, когда сумма достигает b, а заём добавляет именно b единиц младшему разряду. Поэтому правила нельзя механически переносить из десятичной системы: там основание равно 10, а в двоичной — 2, в пятеричной — 5. Сначала определяют основание, затем применяют соответствующее ему деление или заём.
| Действие | Что делать в разряде | Когда возникает перенос или заём | Что записать в разряд |
|---|---|---|---|
| Сложение без входящего переноса | Сложить цифры разряда | Если сумма не меньше b, возникает перенос | Остаток от деления суммы на b |
| Сложение с входящим переносом | Сложить обе цифры и входящий перенос | Если итог не меньше b, возникает новый перенос | Остаток от деления итога на b |
| Вычитание без займа | Вычесть нижнюю цифру из верхней | Заём не нужен, если верхняя цифра не меньше нижней | Разность цифр |
| Вычитание с займом | Добавить к верхней цифре b и выполнить вычитание | Если верхней цифры не хватает, занять 1 у старшего разряда | Разность после займа |
Читайте таблицу отдельно для каждого разряда, двигаясь справа налево. При сложении не забывайте прибавлять входящий перенос, а при вычитании отмечайте, из какого разряда взят заём. Во всех случаях записывайте в разряд только цифру меньше b.
Допишем ноль слева к короткому числу, чтобы разряды совпали: 1011₂ + 0110₂. Складывать начинаем справа, потому что перенос может повлиять на следующий разряд. В двоичной системе сумма 2 даёт цифру 0 и перенос 1.
Ответ: 10001₂. Проверка: 1011₂ — это 11, а 110₂ — 6 в десятичной системе; сумма равна 17, то есть 10001₂.
В пятеричной системе допустимы цифры от 0 до 4, поэтому перенос появляется при сумме не меньше 5. Запишем числа одно под другим и пойдём от младшего разряда. В каждом следующем разряде обязательно прибавим перенос, полученный справа.
Ответ: 432₅. Можно проверить переводом: 243₅ = 73, 134₅ = 44, а 73 + 44 = 117; число 432₅ также равно 117.
В трёх разрядах числа 1000 стоят нули, а в вычитаемом — ненулевые цифры, поэтому понадобится заём через нули. Ближайший ненулевой разряд — самый левый: его единица веса 27 позволяет получить по три единицы в разрядах ниже. После займа число 1000₃ временно представляется как 0222₃.
Ответ: 110₃. Проверка сложением: 110₃ + 122₃ даёт в единицах 0 + 2 = 2, в разряде троек 1 + 2 = 3 — записываем 0 и переносим 1, в разряде девяток 1 + 1 + 1 = 3 — записываем 0 и переносим 1. Получаем 1000₃, исходное уменьшаемое.
Переносить единицу при сумме 10 в любой системе. Так делают по привычке после десятичной арифметики, но перенос зависит от основания. В двоичной системе он появляется при сумме 2, в пятеричной — при 5. Проверь себя: сравни сумму разряда с основанием b.
Записывать в разряд сумму, равную основанию или больше. Такой результат не является допустимой цифрой, потому что цифры системы лежат от 0 до b − 1. Ошибка часто возникает, если забыть выполнить деление на основание. Проверь каждый разряд: записанная цифра должна быть меньше b, а полные группы по b должны стать переносом.
При вычитании занимать 10 единиц вместо основания. Это верно только для десятичной системы, и привычка к ней мешает при других основаниях. Заём всегда даёт младшему разряду ровно b единиц. Для самопроверки назови основание системы и убедись, что прибавил именно его.
Использовать недопустимую цифру или потерять входящий перенос. Например, цифры 5 нет в системе с основанием 5, а пропущенный перенос меняет следующий разряд. Причина обычно в невнимательном движении по записи справа налево. Проверь, что каждая цифра меньше b и что после каждого разряда перенос учтён в следующем.
Для вычислений нужны знания о позиционной записи: цифра показывает число единиц своего разрядного веса. Полезно уметь переводить числа в десятичную систему — это даёт независимый способ проверки ответа, хотя само действие можно выполнять в исходном основании. Эти правила особенно пригодятся при работе с двоичными числами в информатике. На их основе изучают умножение и деление в системах с разными основаниями.
Почему в двоичной системе перенос возникает уже при сумме 2?
В двоичной системе основание равно 2, а допустимые цифры — только 0 и 1. Две единицы одного разряда составляют одну единицу следующего разряда, поэтому в текущем разряде записывают 0 и переносят 1.
Что делать, если сумма цифр с переносом больше основания?
Раздели сумму на основание системы. Остаток запиши в текущий разряд, а частное перенеси в следующий; так можно поступить и тогда, когда частное больше 1.
Как выполнить заём, если соседний старший разряд равен нулю?
Найди слева ближайший ненулевой разряд и уменьши его на 1. Нули между ним и нужным разрядом превращаются в цифру b − 1, а нужный разряд получает b единиц.
Можно ли складывать числа в разных системах счисления?
Непосредственно по разрядам — нет: одинаковые позиции в числах с разными основаниями имеют разные веса. Сначала переведи числа в одну систему, выполни действие и при необходимости переведи результат обратно.
Как проверить результат сложения или вычитания?
Вычитание проверь сложением: разность плюс вычитаемое должны дать уменьшаемое. Также можно перевести числа в десятичную систему, проверить равенство и затем убедиться, что ответ записан допустимыми цифрами исходной системы.
§ 4. Сложение и вычитание чисел в произвольных системах счисления