在文本中将二进制数扩展为32位

时间:2014-02-26 00:19:45

标签: excel excel-2007

我有这个号码

111100000000000010001000

我想用前导零将它扩展到32位。换句话说:

00000000111100000000000010001000

所以我在这里找到了这个建议: Add leading zeroes/0's to existing Excel values to certain length

是使用Right功能。所以我这样做:

=RIGHT("00000000000000000000000000000000"+A1,32)

我最终获得了工程符号的数字。所以我在其他地方建议添加:

=TEXT(RIGHT("00000000000000000000000000000000"+A1,32), "0")

我还是

111100000000000000000000

不是32位,尾随10001000变为零。

知道这里发生了什么吗?

1 个答案:

答案 0 :(得分:0)

Excel将其作为十进制数,而不是二进制数。

111100000000000010001000十进制数对于Excel必须提供的数字精度来说太多了,因此在应用零之前将其舍入为111100000000000000000000(如果应用数字,您可以看到自己格式为A1,禁止科学记数法。)

解决方案是相同的,将所有数字视为字符串。使用撇号在A1前面添加源代码以使其成为字符串,然后RIGHT将按预期工作。
好吧,它实际上不会,因为I used +我应该使用&,所以Excel会尝试转换为数字并实际进行添加。所以纠正公式:

=RIGHT("00000000000000000000000000000000"&A1,32)