我有这个号码
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)