你看这样行吗? 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)
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)
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