你看这样行吗? dim f as long 
 dim a(3) as byte
      f=xxxxxif f <0 then
f=4294967296+f
end if
a(0)=f and 255          '255=11111111
a(1)=(f and 65280)\256  '65280=1111111100000000
a(2)=(f and 16711680)\65535  '16711680=111111110000000000000000
a(3)=(f and 4278190080)\16777216  '4278190080=11111111000000000000000000000000f=a(3)*16777216+a(2)*65536+a(1)*65536+a(0)

解决方案 »

  1.   

    哦错了一部分dim f as long 
    dim a(3) as byte
          f=xxxxxif f <0 then
    f=4294967296+f
    end if
    a(0)=f and 255          '255=11111111
    a(1)=(f and 65280)\256  '65280=1111111100000000
    a(2)=(f and 16711680)\65535  '16711680=111111110000000000000000
    a(3)=(f and 4278190080)\16777216  '4278190080=11111111000000000000000000000000if a(3)*16777216+a(2)*65536+a(1)*65536+a(0)>2147483647 then
        f=a(3)*16777216+a(2)*65536+a(1)*65536+a(0)-4294967296
    else 
        f=a(3)*16777216+a(2)*65536+a(1)*65536+a(0)
    end if