总的来说,我一直认为自己在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
答案 0 :(得分:0)
hex2bin()返回一个字符串,该字符串不适用于bitand()。改用hex2dec():
=BITAND(HEX2DEC(G3),HEX2DEC(N2))
我认为您也打算执行“或”运算符,而不是“与”,因此您应该检查将bitand()替换为bitor(),但这是试图将字符串二进制用作数字的主要问题的第二项。