将二进制数扩展到文本中的 32 位



我有这个号码

111100000000000010001000

我想将其扩展到带有前导零的 32 位。换句话说:

00000000111100000000000010001000

所以我在这里找到了这个建议:将前导零/0 添加到现有 Excel 值的特定长度

是使用正确的功能。所以我这样做:

=RIGHT("00000000000000000000000000000000"+A1,32)

我最终得到了一个工程符号的数字。因此,正如其他地方所建议的那样,我补充说:

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

我仍然得到

111100000000000000000000

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

知道这里发生了什么吗??

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

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

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

=RIGHT("00000000000000000000000000000000"&A1,32)

最新更新