gpt4 book ai didi

vba - excel中12位数字的八进制转二进制

转载 作者:行者123 更新时间:2023-12-02 13:45:08 24 4
gpt4 key购买 nike

我正在尝试将 12 位八进制数转换为二进制

但看起来 Excel 的内置函数 OCT2Bin 不适用于大于 517 的数字

所以我尝试拆分数字并将它们连接起来,但没有成功

我试过了

=OCT2BIN(MID(A2,1,2))&OCT2BIN(MID(A2,3,2))&OCT2BIN(MID(A2,5,2))&OCT2BIN(MID(A2,7,2))&OCT2BIN(MID(A2,9,2))&OCT2BIN(MID(A2,11,2))

例如数字的八进制到二进制

123456765432 

1010011100101110111110101100011010

但是我的公式正在返回

101011100101110111110101100110100

我知道该公式不起作用,因为我不应该破坏数字并将它们连接起来。但我不知道如何在Excel中处理它

有没有办法将12位八进制数转换为二进制数?

最佳答案

由于 excel-vba 也被标记,因此使用 VBA 可以更通用地解决这个问题。

Public Function myDec2Bin(ByVal decValue As Double) As String
Select Case decValue
Case 0
myDec2Bin = "0"
Case 1
myDec2Bin = "1"
Case Else
myDec2Bin = myDec2Bin(Int(decValue / 2)) & IIf(decValue / 2 = Int(decValue / 2), "0", "1")
End Select
End Function

Public Function myOct2Dec(octValue As String) As Double
Dim decValue As Double
For i = 0 To Len(octValue) - 1
decValue = decValue + Mid(octValue, i + 1, 1) * (8 ^ (Len(octValue) - 1 - i))
Next
myOct2Dec = decValue
End Function

Public Function myOct2Bin(octValue As String) As String
Dim decValue As Double
decValue = myOct2Dec(octValue)
myOct2Bin = myDec2Bin(decValue)
End Function

那些UDF都可以用作单元格公式,例如:

=myOct2Bin(A2)

关于vba - excel中12位数字的八进制转二进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41532063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com