在Excel中进行二进制和/或十六进制计算

时间:2019-03-07 11:38:53

标签: excel binary hex

总的来说,我一直认为自己在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 :(得分:0)

hex2bin()返回一个字符串,该字符串不适用于bitand()。改用hex2dec():

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

我认为您也打算执行“或”运算符,而不是“与”,因此您应该检查将bitand()替换为bitor(),但这是试图将字符串二进制用作数字的主要问题的第二项。