代码之家  ›  专栏  ›  技术社区  ›  SSpoke

如何将两个32位无符号整数组合成64位整数

  •  0
  • SSpoke  · 技术社区  · 6 年前

    假设我得到了2个无符号整数
    先有价值 &H0D345B40
    有价值的第二位 &H9AF34A32

    如何生成具有该值的无符号64位整数 &H324AF39A405B340D

    这是我试过的

    dim crypt1 as uint32 = &H0D345B40
    dim crypt2 as uint32 = &H9AF34A32
    
    Dim output As UInt64 = (CType(CType(crypt1, UInt64), Long) Or (crypt2 << 32))
    
    the output is &H000000009FF75B72
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   SSpoke    6 年前

    解决问题的方法很糟糕但也不错

        dim output() as uint64
        Dim bytes() As UInteger = {crypt1, crypt2}
    
        Buffer.BlockCopy(bytes, 0, output, 0, 8)