Страницы: 1
RSS
Преобразование шестнадцатеричных цифр
 
Не могу понять почему не получается с помощью функции ШЕСТН.В.ДВ шестнадцатеричное число 89E075 преобразовать в двоичное, выдает ошибку #ЧИСЛО. И еще вопрос возможно ли результат вычисления число в двоичной системе 100010011110000001110101 разбить на 2 ячейки, что бы первые 8 бит записывались в одну ячейку а остальные 16 в другую и преобразовать в десятичный формат?
Изменено: Алексей Афанфсьев - 02.04.2013 23:30:19
 
А справку посмотреть?  шестнадцатеричное не может быть более 1FF; двоичное - не более 8 бит (8 знаков).
Если разрядность постоянная (не боле и заранее известной), то можно написать формулы для обоих случаев. В общем случае нужна ЮДФ.
 
А по другому с помощью формул это можно как то посчитать?
 
Можно. Только лично я примеры с возможными вариантами рисовать не буду.

зы. по первому пункту, для шестнадцатеричный числа более 6 знаков формула довольно таки громоздкая, но не сложная.
по второму - оба переводить в десятичный формат, или только второе?

В общем, от вас - ваш пример с желаемым результатом.
 
По сути важен только результат в десятичном формате при вводе значения Hex.
Изменено: Алексей Афанфсьев - 02.04.2013 23:51:34
 
Так вам из Hex нужно получить десятичные, без промежуточных вычислений? тогда две простых формулы;
Код
=ШЕСТН.В.ДЕС(ЛЕВСИМВ(F2;2)) 
Код
=ШЕСТН.В.ДЕС(ПРАВСИМВ(F2;4))
 
Да только перевести в десятичный формат нужно отдельно первые 8 бит и остальные 16. Я в таблице структурно указал как должно получиться.
Изменено: Алексей Афанфсьев - 03.04.2013 00:06:28
 
А вы формулы попробовали?
 
Сейчас попробую :) с Excel редко приходится сталкиваться:)
 
Так не подходит?
 
если шестнадцатеричное число может быть из 6 или 5 знаков, без "0" впереди, то первая формула будет
Код
=ШЕСТН.В.ДЕС(ЛЕВСИМВ(F2;длст(f2)-4))
Изменено: Михаил С. - 03.04.2013 00:21:35
 
Спасибо огромное все получилось:)
 
Михаил. а как Вам такое преобразование. Не понимаю почему если больше 25 двоичных знаков преобразованное  число получается со знаком (-).
 
Не было задачи на 25 знаков. Была задача на 24. Во первых.
Во-вторых, жмем F1? читаем справку по =ШЕСТН.В.ДЕС(C17),
и в третьих, я не делаю промежуточных переводов из Hex в Bin, и потом в Dec, а сразу из Hex и Dec.
 
А что обозначает знак ^ в формуле?
Изменено: Алексей Афанфсьев - 03.04.2013 18:52:25
 
возведение в степень
 
У меня теперь еще проблема появилась, есть шестнадцатеричные числа типа 113C0EB в двоичном виде это 1000100111100000011101011 для того что бы получить нужный мне результат о котором я писал выше нужно Добавить в начале нули до 26-бит и затем отбросить первый и последний бит (Биты четности) и далее полученное число перевести обратно в шестнадцатеричное, ну а как дальше делать я уже знаю:)
 
Цитата
Алексей Афанфсьев пишет:
есть шестнадцатеричные числа типа 113C0EB
первая цифра всегда "1"? всегда 7 знаков?
и зачем спереди добавлять нули, все равно они не считаются; при необходимости просто обрезать один знак справа.
 
Нет первая цифра не всегда 1, про нули в начале это я так, что бы понятно было, конечно они не обязательны.
 
из 7-значного шестнадцатеричного получается от 25 до 28 знаков двоичных... как быть, если первый знак больше 1?
 
В шестнадцатеричном коде пропусков, всегда 25 получается.
 
Тогда первая всегда "1".
Описанный алгоритм выполнит следующая формула
Код
=ДЕС.В.ШЕСТН(ШЕСТН.В.ДЕС(A1)/2)
а А1 - шестнадцатеричное число, не более 7FFFFFFFFF.
 
Еще раз огромное спасибо!
 
Это всё хорошо... проблема так и не решилась и ничего не работает..
надо любой формат (дес, восм, шес.) перевести в двоичный... числа занимают 14 бит
 
10889#ЧИСЛО!
 
UDF
«Бритва Оккама» или «Принцип Калашникова»?
Страницы: 1
Читают тему
Наверх