Выполнение двоичных и / или шестнадцатеричных вычислений в Excel - PullRequest
0 голосов
/ 07 марта 2019

В целом я всегда считал себя очень компетентным в Excel (обычный, сводные таблицы, графики, VBA и т. Д.), Но сейчас Я собираюсь найти хороший крепкий напиток !!!

У меня есть большое количество шестнадцатеричных записей, которые я хочу проанализировать и построить некоторые из вычисленных результатов. В программе это может выглядеть так

static float getValue (uint8_t highbyte, uint8_t lowbyte) {
    int highbits = (highbyte & 0x0F) << 7 ;
    int lowbits = lowbyte & 0x7F;
    int rawValue = highbits | lowbits;
    float Value = rawValue;
    return Value;
}

Я пытался использовать Excel и его двоичные и шестнадцатеричные функции. Иногда я получаю что-то, что имеет смысл, например «= BITAND (HEX2BIN (G3,8), HEX2BIN (N2,8))», где ячейка g3 - это шестнадцатеричное «30», а n2 - это шестнадцатеричное «0f», а результат равен 1040. Я предполагаю, что это десятичный результат, но Excel выдает ошибку данных, когда я пытаюсь преобразовать ее в двоичный эквивалент, чтобы я мог выполнить операцию левого сдвига.

Как я уже говорил выше, мне нужно обработать много записей, и я хотел бы сохранить их в Excel, если это возможно.

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

1 Ответ

0 голосов
/ 07 марта 2019

hex2bin () возвращает строку, которая не является подходящим аргументом для bitand ().Вместо этого используйте hex2dec ():

=BITAND(HEX2DEC(G3),HEX2DEC(N2))

Я также думаю, что вы намереваетесь делать или операцию, а не и, поэтому вам следует проверить замену bitand () на bitor (), но это вторично по отношению к основнойПроблема использования строкового двоичного файла в качестве числа.

...