Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2010, 12:31   #1
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
По умолчанию Система счисления

Здравствуйте у меня вопрос все перерыл не пойму Как сложить например 4 числа или более которые находятся в троичной системе счисления или какой либо другой системе.
Alex_sim вне форума Ответить с цитированием
Старый 20.04.2010, 12:42   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

А какое отношение имеет тема к Microsoft Office Excel?
Числа расположены в ячейках?
Надо сделать формулой, или макросом?
EducatedFool вне форума Ответить с цитированием
Старый 20.04.2010, 12:46   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Например, в троичной системе:
0 + 0 = 0
0 + 1 = 1
1 + 1 = 2
2 + 1 = 0 и 1 в уме (переход на следующий разряд)
2 + 2 = 1 и 1 в уме (переход на следующий разряд)
2 + 2 + 1 из ума = 2 и 1 в уме (переход на следующий разряд)
Аналогично для любой системы счисления.
Пожалуйста, пишите хоть на VBA Excel, хоть на своем собственном языке.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 20.04.2010, 13:15   #4
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
По умолчанию

А если несколько чисел 222 +2222+222+222 в 3ой системе
Alex_sim вне форума Ответить с цитированием
Старый 20.04.2010, 14:04   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

вот вам две функции, которые умеют переводить числа из 10-ричной системы в любую n-ричную (где n от 2 до 9) и обратно.
Код:
' Перевод d из 10-ричной системы в какую-то n-ричную
Function D2xz(d As Long, n As Long) As String
  Dim r As Integer, s As String
  r = Int(Log(d) / Log(n))
  Do
    s = s & Int(d / n ^ r)
    d = d - Int(d / n ^ r) * n ^ r
    r = r - 1
  Loop Until r = -1
  D2xz = s
End Function

' и обратно: s - значение, n - в какой системе записано
Function xz2D(s As String, n As Long) As Long
  Dim r As Integer, d As Long
  For r = 0 To Len(s) - 1
    d = d + Val(Mid(s, Len(s) - r, 1)) * n ^ r
  Next
  xz2D = d
End Function
посчитать ваш пример будет так:
= D2xz(xz2D("222",3)*3 + xz2D("2222",3), 3)
у меня получилось 12212
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
система счисления с 2 в 16 never smile Помощь студентам 0 19.03.2010 16:30
троичная система счисления elena_ma Помощь студентам 0 29.11.2009 20:48
Системы счисления glupayastudentka Помощь студентам 3 28.06.2009 21:13
Паскаль! Система счисления! Перевод чисел Darf Помощь студентам 9 20.06.2009 13:23
двоичная система счисления galaid Паскаль, Turbo Pascal, PascalABC.NET 3 17.05.2009 15:42