首页 > 解决方案 > 在 Excel 中进行二进制和/或十六进制计算

问题描述

总的来说,我一直认为自己在 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

标签: excelbinaryhex

解决方案


hex2bin() 返回一个字符串,这不是 bitand() 的合适参数。使用 hex2dec() 代替:

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

我认为您还打算执行 or 操作,而不是 and,因此您应该检查是否将 bitand() 替换为 bitor(),但这是尝试使用字符串二进制作为数字的主要问题的次要问题。


推荐阅读