Нега-позиційна система числення — це позиційна система числення з від'ємною основою. Особливістю таких систем є відсутність знака перед від'ємними числами, тобто відсутність правил знаків. Будь-яке число будь-якої з нега-позиційних систем, відмінне від 0, з непарним числом цифр — додатне, а з парним числом цифр — від'ємне. Часто число в нега-позиційній системі вимагає для запису на одну цифру більше, аніж те ж саме число в системі з позитивною основою. Зазвичай назва нега-позиційної системи складається з префікса нега- і назви відповідної системи числення з додатною основою;
Наприклад, нега-десяткова (b = -10), нега-трійкова (b = -3), нега-двійкова (b = -2) та інші.
Нега-позиційні системи числення вперше були запропоновані Вітторіо Грюнвальдом[en] у його роботі «Giornale di Matematiche di Battaglini» 23 (стор. 203—221), опублікованій в 1885 році. Грюнвальд описав алгоритми додавання, віднімання, множення, ділення, отримання кореня, ознак подільності й перетворення систем числення.
Число x у нега-позиційній системі числення з основою b = -r представляється у вигляді лінійної комбінації числа ступенів -r:
Кожнен ступінь ( − r ) k {\displaystyle (-r)^{k}} у такому записі називається розрядом, старшинство розрядів і відповідних їм чисел визначається значенням показника k {\displaystyle k} . Зазвичай для ненульового числа x {\displaystyle x} вимагають, щоб старша цифра a n − 1 {\displaystyle a_{n-1}} у b-річному поданні x {\displaystyle x} була також ненульова.
Нега-позиційні системи можна порівняти із знако-розрядними системами числення, такими як симетрична трійкова система, де основа системи додатна, однак цифри можуть приймати від'ємні значення з деякого проміжку.
Деякі числа мають одне й те ж саме подання в системах числення з основою b {\displaystyle b} і − b {\displaystyle -b} (позиційних й відповідним їм нега-позиційних). Приміром, числа від 100 до 109 однаково записуються в десятковій і нега-десяткових системах числення. Аналогічно:
Тобто число 17 має однакове представлення в двійковій і нега-двійковій системах числення — 10001 {\displaystyle 10001} .
Подання чисел від -12 до 12 в різних системах числення:
Нега-позиційне подання числа може бути отримано послідовними поділами з залишком вихідного числа b = − r {\displaystyle b=-r} (тобто на основу нега-позиційної системи) і записом поспіль залишків починаючи з останнього. Зауважимо, що якщо a / b = c {\displaystyle a/b=c} , із залишком d {\displaystyle d} , то b c + d = a {\displaystyle bc+d=a} . Приклад перекладу в нега-трійкову систему:
Отже, нега-трійковим поданням числа 146(10) є число 21102(-3).
Реалізація на C#:
static string negaternary(int value) { string result = string.Empty; while (value != 0) { int remainder = value % -3; value = value / -3; if (remainder < 0) { remainder += 3; value += 1; } result = remainder.ToString() + result; } return result; }
Додавання стовпчиком треба робити як і в звичайній системі, наприклад, якщо ви хочете скласти в нега-десятковій системі числення, то це треба робити як і в десятковій системі числення. Але з одним винятком: якщо при додаванні в будь-якому розряді виходить число не менше 10, то в цей розряд потрібно записати число одиниць отриманого числа, а з сусіднього зліва розряду – відняти одиницю. Якщо зліва немає розряду, то приписати зліва 19 (для нега-десяткової, для нега-трійкової – 12, для нега-двійковій – 11). Наприклад (нега-десяткова система):
· · 18115 + 5487 3582
5+7=12, 2 в розряд одиниць, з сусіднього зліва віднімаємо одиницю. 8+5=13, 3 розряд мінус тисяч, з сусіднього зліва віднімаємо одиницю.
· 72 + 49 1901
2+9=11, 1 в розряд одиниць, від сусіднього зліва віднімаємо одиницю. 6+4=10, 0 в розряд мінус десятків, сусіднього зліва — немає, приписуємо зліва 19.
Віднімання стовпчиком треба робити як і в звичайній системі, наприклад, якщо ви хочете відняти у нега-десятковій системі числення, то це треба робити як і в десятковій системі числення. Але з одним винятком: якщо при відніманні в якому-небудь розряді треба зайняти десяток, то ви це робите, але з сусіднього зліва розряду ви не віднімаєте одиницю, а, навпаки, додаєте її туди. Якщо зліва немає розряду, то приписати зліва 1. Наприклад (нега-десяткова система):
1 52 - 39 33
2-9 не можна, займаємо одиницю. 12-9=3, 3 в розряд одиниць, до сусіднього зліва розряду додаємо одиницю. 6-3=3.
2 - 9 13
2-9 не можна, займаємо одиницю. 12-9=3, 3 в розряд одиниць, сусіднього зліва розряду немає, тому приписуємо зліва 1.
Таблиця множення в нега-двійковій системі числення
Таблиця множення в нега-трійковій системі числення
Таблиця множення в нега-десятковій системі числення