Как создать формулу Excel для преобразования значения ячейки в шестнадцатеричное число?

Я пытаюсь создать формулы Excel, чтобы найти шестнадцатеричные значения для каждого бита. У меня есть лист Excel, как показано ниже.

Здесь у меня есть 32-битное двоичное значение (пример: от A1 до AE1) и еще одно 32-битное двоичное значение (пример: от A6 до AE6). Моя цель — написать формулы для первого шестнадцатеричного значения (32-битное двоичное значение) и следующего шестнадцатеричного значения (следующее 32-битное двоичное значение). Наконец, мне нужно получить 64-битное значение, объединив первое и второе 32-битные значения.

Результат 1: формат шестнадцатеричного значения (32-битное двоичное значение): 0xFFFFFFFF.

Результат 2: формат шестнадцатеричного значения (следующее 32-битное двоичное значение): 0xFFFFFFFF.

Конечный результат: Шестнадцатеричное значение 64-битного двоичного формата: 0xFFFFFFFFFFFFFFFF.

Как я могу написать три простые формулы, чтобы найти эти три значения Hexa? Любые предложения или пример?

BIN2HEX()может быть? Что вы пробовали?
cybernetic.nomad 28.08.2024 21:55

@cybernetic.nomad — не очень полезно BIN2HEX() ограничено 10 битами.

Michal 28.08.2024 22:39
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
2
52
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Уже есть ответ о том, как bin2dec для чисел длиной более 10 бит в Excel, поэтому адаптировать его для своих нужд должно быть достаточно легко. Если у вас Excel 365:

=LET(
    string,TEXTJOIN("", TRUE, A2:AF2),
    dec,SUMPRODUCT(--MID(string,LEN(string)+1-ROW(INDIRECT("1:"&LEN(string))),1),(2^(ROW(INDIRECT("1:"&LEN(string)))-1))),
    DEC2HEX(dec))

Или используйте больше возможностей Excel 365:

=LET(
    string, TEXTJOIN("", TRUE, A2:AF2),
    len, LEN(string),
    dec, SUMPRODUCT(--MID(string, SEQUENCE(len, 1, len, -1), 1), 2^(SEQUENCE(len, 1, 0))),
    DEC2HEX(dec))

Если у вас нет Excel 365, вы можете использовать вспомогательную ячейку.

Ответ принят как подходящий

Это также может работать с входами с 32 столбцами, но не уверен насчет знакового бита:

=CONCAT("0x", BIN2HEX(MID(CONCAT(--A1:AF1), SEQUENCE(, 4, 1, 8), 8), 2))

=CONCAT(
    "0x",
    BIN2HEX(
        MID(CONCAT(--A1:AF1, --A6:AF6), SEQUENCE(, 8, 1, 8), 8),
        2
    )
)

Вы не заботитесь о последовательности MSB...LSB выборок. В вопросе все перевернуто, поэтому ваша формула дает неправильное значение.

Black cat 29.08.2024 05:06

Большое спасибо @Blackcat, я так и подозревал. Вот почему я показал позиции битов ниже. Поспим и обновим завтра :)

nkalvi 29.08.2024 05:20

Спасибо за предложение. На данный момент мне не требуется знаковое значение.

user2986042 29.08.2024 09:20

Другие вопросы по теме