我有一个有28位二进制数的excel。我需要将它们转换为十进制数,但函数bin2dec不能处理超过10位的数字。任何人都可以帮我这个吗?
答案 0 :(得分:4)
使用以下公式来模仿隐含大于10位的BIN2DEC function。
=SUMPRODUCT(--MID(A2,LEN(A2)+1-ROW(INDIRECT("1:"&LEN(A2))),1),(2^(ROW(INDIRECT("1:"&LEN(A2)))-1)))
请记住,Excel的数字精度为15位数。如果您想要28位数字,请将单元格格式化为文本,或将单个字符串前缀(例如'
)作为PrefixCharacter property。
答案 1 :(得分:0)
我用数学方法强行将其强行使用,这可能不太雅致,但是对于16位数字(其中会显示前导0的数字),此方法有效,并且可以轻松地适应较长的字符串
如果您使用固定长度的字,例如验证存储器中的值,BIT寄存器等,这会很好地工作。
16 bit
=BIN2DEC(LEFT(R5,8))*2^8+BIN2DEC(RIGHT(R5,8))
32 bit could be
=BIN2DEC(MID(R10,1,8))*2^24+BIN2DEC(MID(R10,9,8))*2^16+BIN2DEC(MID(R10,17,8))*2^8+BIN2DEC(MID(R10,25,8))
同样,如果您输入的是固定长度的输入,则可以显示前导零。