Свежие обсуждения
Компьютеры

Как в Microsoft Excel работать с шестнадцатеричными числами.

1 2

Собсбвенно задача преобразовать из текстовой строки, описывающей число в 16тиричной кодировке (2-12) разрядов получить десятичное число для выполнения матопераций, а затем результат опять перегнать в 16тиричное представление и текстовый формат. Что-то весь хелп облазил - не нашел, только десятичное похоже представление обрабатывается. Может какие-то готовые макросы/плагины... есть ?

 

Макрос на бейсике, оформить в виде пользовательской функции. (точнее, двух - прямой и обратной)

 

Перевод туда и обратно: Формула =ДЕС.В.ШЕСТН(ШЕСТН.В.ДЕС(D33) * ШЕСТН.В.ДЕС(A33))?

 

Напимер, тупо вот такая функция:

Function hex2dec(hhh)
Dim d As Double, n As Integer

d = 0
hhh = trim(hhh) 'удаляет пробелы с обеих сторон
For n = Len(hhh) To 1 Step -1
d = d + (Val("&h" & Mid$(hhh, n, 1)) * (16 ^ (Len(hhh) - n)))
Next

hex2dec = d
End Function

На входе строка hhh, изображающая шестнадцатерическое число (например, ffffffffffff ), на выходе результат (в данном случае выдаст 2,81475E+14)

Только ужо Вам самому придется следить, чтобы на вход не попали некорректные данные. Например, "qwerty" будет переведено как 57344, то есть, воспринято как шестнадцатеричное 00e000

И еще никак не могу вспомнить, как сделать чтобы эта функция сохранилась в эксцэле навсегда в списке функций.

 

Wladimir_TS: Что-то весь хелп облазил - не нашел, только десятичное похоже представление обрабатывается
Мастак абсолютно прав: есть встроенные функции, они указаны в хелпе (ищутся по ключевому слову).

Функция ШЕСТН.В.ДЕС
Преобразует шестнадцатеричное число в десятичное.
Синтаксис
ШЕСТН.В.ДЕС(число)
Число — преобразуемое шестнадцатеричное число. Число не может содержать более 10 разрядов (40 бит). Самый старший бит числа является знаковым битом. Остальные 39 бит являются битами значения. Отрицательные числа записываются в дополнительных кодах.

 

kav: kav
Функция ШЕСТН.В.ДЕС
Преобразует шестнадцатеричное число в десятичное.

Хоть оно мне и не надо, попробовал. Результат - в хелпе есть, а когда скопипастил, как советует хелп, в ячейку, ругается : #ИМЯ. И в списке поддерживаемых функций нет.
Excel2003.
Хорошо, что оно мне не надо

 

а опознать буковку и в отдельной табличке "справочник" сделать, сравнить с табличкой и вернуть в десятичной, провести мат операцию, сравнить с табличкой и вернуть 16ичное?

 

Bul_d_Ozer: в списке поддерживаемых функций нет.

Установить из дистрибутива.

 

Mastak: Установить из дистрибутива.
Да ну его... Ексель использую только для ведения "булгахтерии". Для серьезных вещей Дельфи удобнее.

 

Mastak: Mastak ◊
30 марта, 13:30
Bul_d_Ozer: в списке поддерживаемых функций нет.

Установить из дистрибутива.

И где оно там ? Или это какое-то дополнение.

Bul_d_Ozer: Bul_d_Ozer ◊
31 марта, 00:07
Mastak: Установить из дистрибутива.
Да ну его... Ексель использую только для ведения "булгахтерии". Для серьезных вещей Дельфи удобнее.

Дюже сложно увы.