You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于BIN2DEC函数处理10位首位为1的二进制数的异常咨询

关于BIN2DEC函数10位首位为1时返回负数的原因

这是因为Excel的BIN2DEC函数是按有符号10位二进制补码来解析输入的:

  • 函数默认把输入的二进制数当作10位有符号数处理,首位是符号位:0代表正数,1代表负数。
  • 当输入是9位及以下的二进制数时,函数会自动在高位补0凑满10位,此时符号位为0,所以会按正数解析,结果正常。

拿你的例子拆解:

  1. 对于1010111110(10位):
    • 首位1标记这是负数,剩下的9位是010111110
    • 补码转十进制的规则是:对剩余位取反(得到101000001)再加1(得到101000010),转十进制是322,最终结果就是-322
  2. 对于101011110(9位):
    • 函数自动补0成10位:0101011110,首位0是正数符号位,直接转十进制就是350,和预期一致

如果要得到10位首位为1的二进制数的无符号十进制结果,你可以用公式手动计算,比如:=SUMPRODUCT(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)*2^(LEN(A1)-ROW(INDIRECT("1:"&LEN(A1))))),把A1换成你的二进制数所在单元格。

内容的提问来源于stack exchange,提问作者Tom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 15:28:14