问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何把一个 Long 型转换成 Byte(0 to 3)?

发布网友 发布时间:2022-05-16 18:25

我来回答

4个回答

热心网友 时间:2023-11-18 13:01

借助calling_1的代码:
Option Explicit
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Dim Buffer(3) As Byte

Private Sub Command1_Click() '获得Long数据的4个Byte值
Dim i As Integer
Dim a As Long
a = Val(Text1)
CopyMemory Buffer(0), a, 4
For i = 0 To 3
Print Buffer(i)
Next
End Sub

Private Sub Command2_Click()
Dim l_byte(0 To 3) As Byte '要被转化的Byte()
Dim l_long As Long '要保存转化的Long
l_byte(0) = Buffer(3)
l_byte(1) = Buffer(2)
l_byte(2) = Buffer(1)
l_byte(3) = Buffer(0)
l_long = "&H" & (CStr(Hex(l_byte(0))) & CStr(Hex(l_byte(1)))) & CStr(Hex(l_byte(2))) & CStr(Hex(l_byte(3)))
Text2 = l_long
End Sub

Private Sub Form_Load()
Text1 = ""
Text2 = ""
End Sub

热心网友 时间:2023-11-18 13:02

是的,用CopyMemory就可以实现

热心网友 时间:2023-11-18 13:02

1.LONG变为bYTE(0 to 3):

Dim l_strTemp As String

Dim l_byte(0 To 3) As Byte '要保存转化的Byte数组
Dim l_long As Long
l_long = &HABCD1234 '要被转化的Long

If l_long >= 0 Then 'VB中,long的范围是-'&h7fffffff到&h7fffffff,当l_long大于&h7fffffff时会被
'表示为负数,因此特殊处理(转化为字符串并取前两位)
l_byte(0) = (l_long And &HFF000000) / &H1000000
Else
l_strTemp = CStr(Hex(l_long))
l_byte(0) = CByte("&H" & Left(l_strTemp, 2))
End If

l_byte(1) = (l_long And &HFF0000) / &H10000 '其他的正常处理
l_byte(2) = (l_long And &HFF00&) / &H100&
l_byte(3) = l_long And &HFF

------------------------------------------------------
2.bYTE(0 to 3)变为long:
Dim l_byte(0 To 3) As Byte '要被转化的Byte()
Dim l_long As Long '要保存转化的Long
l_byte(0) = &H12
l_byte(1) = &H56
l_byte(2) = &HAB
l_byte(3) = &HCD

l_long = "&H" & (CStr(Hex(l_byte(0))) & CStr(Hex(l_byte(1)))) & CStr(Hex(l_byte(2))) & CStr(Hex(l_byte(3)))

热心网友 时间:2023-11-18 13:03

一个*的方法:开个二进制临时文件,然后把long写进去,再按照byte数组读出。反之亦然。
这个方法效率有些低,不要用在追求速度的场合。偶尔用用还可以。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我是个很内向的人有时候会很喜欢听纯音乐,有时候会听特别嗨的DJ_百度知... 与别人握手时该握几下 关于生日祝福语的文案(精选50句祝女子生日幽默风趣的句子) 女人高情商幽默生日祝福语 教师资格证审核通过能重新报名吗 教师资格证审核通过后可以重报吗 报考教师资格证审核通过了还能再重新报考吗 ...名字,霸气高冷的昵称_又狠又霸气的网名_霸气的网名_高冷霸气网名 网名男生霸气冷酷好听,男生网名高冷霸气_男生网名霸气超拽高冷... 记忆枕十大品牌介绍记忆枕真的有用吗 java 自动类型转换 java 变量数据类型转换?byte, short, char, int, long, float, double 女主现代重生小说有金手指宠文 java怎么把byte数组赋值给long数组? C#怎样将Byte[]转换成long 将16进制的Byte数组转换成Long(C++) 如何去除图片的水印标签? 怎么将 byte 转换为long 刑事诉讼法183条 《刑诉解释》第180条 刑事诉讼法182条 刑诉中的不予受理、终止审理和驳回起诉 刑事诉讼法司法解释第157条第181条 司法考试:刑诉抗诉问题 刑事诉讼法解释15和181条矛盾吗 刑事抗诉,以什么为标准 刑诉解释第15条与第181条矛盾 刑诉解释第15条规定:基层*对于可能判处无期徒刑,死刑的第一审 刑事诉讼中止审理的情形? 简答刑诉诉讼终止的条件 刑事诉讼法一审抗诉的条件是什么? C#.NET byte[] 的一个小问题 体验农家生活的作文可以写什么 在VB里面long型怎样转成byte[]型 VB 中如何将long型数组转化为byte型数组 周末带孩子出去摘果子,体验农家生活,有没有什么好的地方推荐一下? 英语翻译体验农家生活吃农家饭住农家院 VB byte 转 integer 想在宜昌体验农家生活,有什么推荐的地方? 游山西村从几个方面写农家生活体验? 写一篇有趣的农家生活的作文 与我的爱车东风风神AX7带两个小朋友去果园里体验农家生活! 寻一处宁静远离喧嚣,与海马8S享受静谧的田园时光 hm口红在哪个网站买 hm lanvin是什么 这次lavin for hm国内的店也有吗 有好的口红吗?卡姿兰口红会致癌? 太原市哪里做口红 忘记了手机号也不用了怎么办? 做口红微商,怎么发朋友圈 微商城世界名品蛋糕共有几款