【问题标题】:Doing Binary and/or Hexidecimal calculations in Excel在 Excel 中进行二进制和/或十六进制计算
【发布时间】:2019-07-29 06:53:33
【问题描述】:

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

【问题讨论】:

    标签: excel binary hex


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢,我会在今天晚些时候尝试这个。 Excel的十六进制和二进制函数很混乱
    • 是的。这里棘手的部分是 HEX2BIN 和 HEX2DEC 旨在根据需要使用字符串。如果他们找到一个数字,他们会将其转换为字符串(采用该数字的十进制表示),然后将这些数字解释为十六进制数字。位操作 BITAND、BITOR 等需要数字或数字的十进制表示。因此,当 HEX2BIN 返回“00110000”时,BITAND 不会将其解释为 48,而是 110,000。
    猜你喜欢
    • 2014-10-30
    • 2019-04-29
    • 2023-04-05
    • 2023-03-22
    • 1970-01-01
    • 2018-08-26
    • 1970-01-01
    • 1970-01-01
    • 2011-10-01
    相关资源
    最近更新 更多