Двоичные таблицы с побитовыми операторами

Я ищу способ легко создавать двоичные таблицы с использованием побитовых операторов, таких как SHIFT, AND, OR а также XOR,

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

1 ответ

Если вы хотите просто сделать единичные логические значения в ячейке, вы можете использовать =TRUE() и =FALSE (обычно представлены 1 и 0). Есть AND, IF (логический первый операнд). НЕ, ИЛИ, И XOR. Вы можете создавать строки из этих значений и выполнять построчные операции, перестановки и т. Д.

Если вы хотите вместо этого выполнять побитовые операции с одиночными значениями, вы сможете это сделать. Они работают над двоичным представлением целых чисел в определенном диапазоне. Вы должны иметь возможность отображать их в шестнадцатеричном виде. Я не знаю, какие продукты поддерживают запись в шестнадцатеричном или двоичном виде как часть форматирования ячеек, но такие функции, как BIN2DEC, BIN2HEX, DEC2BIN и DEC2HEX, должны быть полезны. Поиграйте с ними, чтобы получить то, что вы хотите. (Чтобы ввести двоичное значение, используйте BIN2DEC, а чтобы показать результат в двоичном виде, используйте DEC2BIN. Я знаю, что это звучит задом наперед, но вы можете подумать об операциях BIT ниже, выполнив DEC2BIN с операндами, а затем выполнив BIN2DEC с результат - эффект таков, как будто он делает это, внутренне это легче. Поиграйте с электронной таблицей, которая имеет эти функции, и подтвердите, как это работает для вас.)

Побитовые функции OpenFormula - это BITAND, BITLSHIFT, BITOR, BITRSHIFT и BITXOR. Ожидается, что они будут работать в беззнаковых значениях не менее 48 бит. Для работы в n битах важно определить константу 2^n-1, которая может использоваться в BITAND для отбрасывания любых битов, которые, как ожидается, будут сдвинуты, и BITXOR для дополнения всех битов (нет BITCOMP или BITNOT), Кругового сдвига нет, но можно составить. Для чего-либо особенно сложного может быть лучше использовать построчные операции над ячейками, имеющими одиночные логические значения. В качестве альтернативы может быть желательно определить макросы для сложных побитовых функций, включающих вращения и перестановки.

Возможно, они еще не реализованы единообразно. Проверьте последние версии LibreOffice Calc, Apache OpenOffice Calc и Gnumeric.

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