【问题标题】:How to convert decimal to binary in excel without using the engineering functions如何在不使用工程函数的情况下将excel中的十进制转换为二进制
【发布时间】:2019-03-22 14:22:40
【问题描述】:

我正在尝试学习将二进制转换为十进制/十六进制/八进制的基础知识。现在我主要关注十进制到二进制的转换,没有使用工程函数 dec2bin。我没有在网上找到很多关于此的内容。

到目前为止,我已经想出了如何将其中包含正十进制数的单元格转换为 8 个框(8 位)组成 0 和 1。

我这样做的方法是使用 MOD 和 INT 函数。

First bit with formula

2nd Bit with formula

在上面的两张图片中,我展示了我如何手动计算从十进制转换为二进制的过程。问题是,这是很长的路要走,我希望能帮我把它做成两个盒子;一个是小数,另一个是二进制,所以当我输入小数时,它会立即计算到它旁边的二进制中,如图3所示。

decimal to binary short form

如果有人可以帮助我了解如何仅使用一个单元格而不是 8 个单独且不同的公式来使我的公式起作用,我将不胜感激。

【问题讨论】:

  • H3的公式是什么?
  • @ScottCraner =INT(MOD(A3/4,2)) & 然后 G3 是 =INT(MOD(A3/8,2)) & F3 是 =INT(MOD(A3/16, 2)) & E3 是 =INT(MOD(A3/32,2)) & D3 是 =INT(MOD(A3/64,2)) & C3 是 =INT(MOD(A3/128,2))跨度>

标签: excel binary int decimal mod


【解决方案1】:

使用 CONCAT 作为数组公式:

=CONCAT(INT(MOD(A3/2^(8-ROW($1:$8)),2)))

作为数组公式,退出编辑模式时必须使用 Ctrl-Shift-Enter 确认,而不是 Enter。

CONCAT 是随 Office 365 Excel 引入的。


如果没有 Concat,可以使用 TEXT 和 SUMPRODUCT 来完成:

=TEXT(SUMPRODUCT(INT(MOD(A3/2^(8-ROW($1:$8)),2))*(10^(8-ROW($1:$8)))),"00000000")

【讨论】:

  • 没关系,我的excel自带concatenate,这里q小一点,能不能解释一下这部分公式“2^(8-ROW($1:$8)),2)))”就行了为了巩固我的理解,在处理 -128 到 128 范围内的有符号十进制值时还有什么区别?
  • 排在第一位:Row(1:8) 创建并排列 {1,2,3,4,5,6,7,8} 公式,然后迭代那些做数学运算的 2^7,2^6,...,2^0。至于第二个我不知道。不是数学家,只是把你的公式变成了数组公式。
  • 但是根据我的测试,您需要将其放大到 10 位数的回报。因此,将公式中的8s 更改为10,并将"00000000" 更改为"0000000000",它将返回与dec2bin 相同的结果
  • 为抬头欢呼。我会在测试期间的报告中提到它。再次欢呼。
猜你喜欢
  • 2014-05-26
  • 1970-01-01
  • 2010-12-05
  • 2021-12-27
  • 2015-06-09
  • 2019-07-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多