【问题标题】:Hex ANDing in Excel and/or Visual BasicExcel 和/或 Visual Basic 中的十六进制与运算
【发布时间】:2009-03-19 15:38:55
【问题描述】:

我正在尝试在Excel/Visual Basic 中按位对AND 两个十六进制数。

例如。 53FDBC AND 00FFFF 应该产生 00FDBC

关于如何做到这一点的任何想法?

【问题讨论】:

    标签: vba excel hex


    【解决方案1】:

    我假设您将 2 个值存储为字符串。在这种情况下,您可以执行以下操作:

    Dim hex1 As String
    hex1 = "53FDBC"
    
    Dim hex2 As String
    hex2 = "00FFFF"
    
    Dim bin1 As String
    bin1 = CLng("&H" & hex1)
    
    Dim bin2 As String
    bin2 = CLng("&H" & hex2)
    
    Dim result As String
    result = Hex$(bin1 And bin2)
    

    result 现在包含“FDBC”,但您可能希望在左边用零填充

    作为一个函数(excel模块),这可以实现为:

    Function hexand(hex1 As String, hex2 As String) as String
    
    Dim bin1 As String
    bin1 = CLng("&H" & hex1)
    
    Dim bin2 As String
    bin2 = CLng("&H" & hex2)
    
    hexand = Hex$(bin1 And bin2)
    
    End Function
    

    【讨论】:

    • 谢谢大家!这真的很有帮助。
    【解决方案2】:

    iirc,它是内置的,只有位移运算符不是内置的

    &H53FDBC 和 &H00FFFF

    【讨论】:

      【解决方案3】:

      十进制0xFFFF的十六进制值为65536 十进制 0x53FDBC 的十六进制值为 5504444

      所以你可以使用 =DEC2HEX(MOD(5504444,65536))

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-07-29
        • 1970-01-01
        • 2012-09-12
        • 2013-06-12
        • 1970-01-01
        • 2015-10-18
        • 2011-12-09
        • 1970-01-01
        相关资源
        最近更新 更多