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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2012, 13:52   #1
viron
Форумчанин
 
Аватар для viron
 
Регистрация: 02.12.2011
Сообщений: 110
По умолчанию Автоматическое заполнение ячеек в разных системах счисления

Как можно в Excel заполнить ячейки числами от -128 до +127 в двоичной, восьмеричной и шестнадцатеричной системах счисления? В десятичной все легко а вот с другими что-то не могу понять как это сделать

3 столбца нужно заполнить.

Последний раз редактировалось viron; 09.01.2012 в 13:54.
viron вне форума Ответить с цитированием
Старый 09.01.2012, 15:38   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Лень функцию писать да и времени на это нет,если нужны только значения,то они во вложении
Вложения
Тип файла: txt система.txt (9.6 Кб, 130 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 09.01.2012, 16:29   #3
DV68
Форумчанин
 
Регистрация: 05.08.2009
Сообщений: 465
По умолчанию

из справки:
Функция ДЕС.В.ВОСЬМ Преобразует десятичное число в восьмеричное.
Функция ДЕС.В.ДВ Преобразует десятичное число в двоичное.
Функция ДЕС.В.ШЕСТН Преобразует десятичное число в шестнадцатеричное.
"Все следует делать настолько простым, насколько это возможно, но не проще." Альберт Эйнштейн
DV68 вне форума Ответить с цитированием
Старый 09.01.2012, 19:28   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

вот набор, который может перевести с 10-ричной системы в какую-то N-ричную (до 36-ричной) и обратно.

Код:
' из 10-ричной системы в какую-то n-ричную
Function D2xz(d As Long, N As Long) As String
  Dim r As Integer, s As String
  r = Int(Log(d + 0.001) / Log(N))  'Для 64, 128 перевод в 2-ичную систему дало неожиданный результат: Log(128)/Log(2) = 7 - это
  'правильно, а Int(Log(128)/Log(2)) уже равно 6 и в старшем разряде получается "2"!!!, пришлось добавить нелогичный 0.001
  Do
    s = s & D2C(Int(d / N ^ r))
    d = d - Int(d / N ^ r) * N ^ r
    r = r - 1
  Loop Until r = -1
  D2xz = s
End Function

' и обратно
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 + C2D(Mid(s, Len(s) - r, 1)) * N ^ r
  Next
  xz2D = d
End Function

Function D2C(i As Integer) As String
  D2C = Split("0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z", ",")(i)
End Function

Function C2D(c As String) As Long
  C2D = InStr("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", c) - 1
End Function
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа выполнения арифметических операций в разных системах счисления Iraida555 Помощь студентам 2 28.12.2011 11:27
Написать программу выполнения арифметических операция в разных системах счисления колянчик1712 Паскаль, Turbo Pascal, PascalABC.NET 2 27.12.2011 16:43
Представление чисел в разных системах счисления Slavytich Помощь студентам 2 03.04.2011 11:55
Автоматическое заполнение ячеек разных листов одной книги tissot Microsoft Office Excel 2 26.01.2010 21:24