【发布时间】:2018-04-01 18:24:59
【问题描述】:
我想将大小数(最多 2^18)转换为格式化的二进制数。
我的十进制数字从单元格 A3 开始。在B3我输入了
=DEC2HEX($A3, 5)
转换为 5 位十六进制数。然后,在C3中,我进入了
= HEX2BIN(MID($B3,1,1), 4) & HEX2BIN(MID($B3,2,1), 4) & HEX2BIN(MID($B3,3,1), 4) & HEX2BIN(MID($B3,4,1), 4) & HEX2BIN(MID($B3,5,1), 4)
给我一个 20 位的二进制数。
最后,在D3中,我进入了
=TEXT($C3, "0000 0000 0000 0000 0000")
这一切都很好,直到我达到 32,769。从此,我失去了最不重要的1!
32,763: 0000 0111 1111 1111 1011
32,764: 0000 0111 1111 1111 1100
32,765: 0000 0111 1111 1111 1101
32,766: 0000 0111 1111 1111 1110
32,767: 0000 0111 1111 1111 1111
32,768: 0000 1000 0000 0000 0000
32,769: 0000 1000 0000 0000 0000
32,770: 0000 1000 0000 0000 0010
32,771: 0000 1000 0000 0000 0010
32,772: 0000 1000 0000 0000 0100
32,773: 0000 1000 0000 0000 0100
32,774: 0000 1000 0000 0000 0110
32,775: 0000 1000 0000 0000 0110
32,776: 0000 1000 0000 0000 1000
32,767: 0000 1000 0000 0000 1000
为什么???
我有一个解决方法(这让我很头疼,因为我的格式真的更像“00 000 000 0-00 000 000-0”):
= TEXT(HEX2BIN(MID($B3,1,1), 4), "0000") & " " & TEXT(HEX2BIN(MID($B3,2,1), 4), "0000") & " " & TEXT(HEX2BIN(MID($B3,3,1), 4), "0000") & " " & TEXT(HEX2BIN(MID($B3,4,1), 4), "0000") & " " & TEXT(HEX2BIN(MID($B3,5,1), 4), "0000")
但为什么原来的不起作用?
【问题讨论】:
-
Excel 最多只能存储 15 位有效数字。如果你想要更多,你需要切换到文本。
-
谢谢你,Scott,这就是原因。
标签: excel excel-formula