excel - Excel 中大数的十进制到二进制转换

标签 excel vba excel-formula

我的 Excel 工作表中有一些大数字,我想将它们转换为二进制。

例如

12345678  
965321458  
-12457896

最佳答案

如果我们谈论 02^32-1 之间的正数,您可以使用以下公式:

=DEC2BIN(MOD(QUOTIENT($A$1,256^3),256),8)&DEC2BIN(MOD(QUOTIENT($A$1,256^2),256),8)&DEC2BIN(MOD(QUOTIENT($A$1,256^1),256),8)&DEC2BIN(MOD(QUOTIENT($A$1,256^0),256),8)

注意: =DEC2BIN() 函数无法处理大于 511 的数字,因此如您所见,我的公式将您的数字分成四个 8 位 block ,将它们转换为二进制格式化,然后连接结果。

理论上,您可以将此公式扩展到六个 8 位 block 。 Excel 中可以获得的最大精度为 15(十五)位小数。当超过时,仅保留最高有效的 15 位数字,其余部分四舍五入。 IE。如果您输入 12345678901234567,Excel 会将其存储为 12345678901234500。因此,由于 2^48-1 的长度为 15 位十进制数字,因此该数字不会四舍五入。

关于excel - Excel 中大数的十进制到二进制转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24387894/

相关文章:

vba - 仅当单元格值实际不同时才触发 'Worksheet_Change' 事件

excel - 复制一行的宏

excel - 保留多个字符串并删除其他数据

vba - 如何激活excelsheet而不用vba打开它?

excel - 函数体中的 INDIRECT 和 OFFSET 使名称变得特殊

vba - 在对象名称中使用变量 (VBA Excel)

Excel VBA删除重复项保持定位

excel - 按月分离数据

Excel:需要复杂的 SUMPRODUCT 公式

excel - 匹配两个表中的文本