![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
ТарасАтавин |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 26.8.2013 Репутация: нет Всего: нет |
Например, в симметричную троичную. Просто в тоичную не проблема: собрать остатки от деления на основание и всё. А в симметричную как? Там цифры -1, 0 и +1, остаток же отрицательным не бывает. Да и деление переводимого числа не очень помогает: например, число 55 в троичной систем будет 2001, а в симметричной троичной +-00+, что на один знак длиннее.
-------------------- Не так всё плохо, как оно есть на самом деле. |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
На сколько я понял, надо штатно перевести в троичную, затем поменять 2 на - и 1 на +: http://ru.wikipedia.org/wiki/%D0%A2%D1%80%....BD.D1.83.D1.8E |
|||
|
||||
ТарасАтавин |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 26.8.2013 Репутация: нет Всего: нет |
-------------------- Не так всё плохо, как оно есть на самом деле. |
|||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 11 Всего: 45 |
Для положительных чисел. Делите число на 3. Если остаток от деления равен 0 или 1, то это 0 или + в симметричной троичной системе счисления. Если же остаток - двойка, то результат деления увеличиваете на единицу, а в соответствующий разряд пишете -. Например: 56(10) = 18[*3] + 2 = 19[*3] + "-" = 6[*3*3] + "+-" = 2[*3*3*3] + "0+-" = 1[*3*3*3*3] + "-0+-" = "+-0+-".
Для отрицательных чисел. Обращаем знак числа, получаем положительное число, которое уже раскладывать умеете. А затем меняете знаки на противоположные. Как-то так... -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
ТарасАтавин |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 26.8.2013 Репутация: нет Всего: нет |
Перенос в частное при двойке? Это всегда даст правильный результат? А если в симметричную пятеричную? Тогда перенос единицы в частное при получении тройки и четвёрки, так как в этой системе нет уже двух цифр асимметричной системы с равным основанием?
Это сообщение отредактировал(а) ТарасАтавин - 30.8.2013, 04:56 -------------------- Не так всё плохо, как оно есть на самом деле. |
|||
|
||||
feodorv |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 11 Всего: 45 |
Ну а как Вы думаете?
Да. Только 3 в остатке заменяется на "двойной минус", а 4 - на "одинарный минус":
-------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||
|
|||||
Walterfew |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 24.1.2023 Репутация: нет Всего: нет |
Модератор: Сообщение скрыто. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |