vb 二进制文件中二进制转十进制谁会啊?

vb设计,有一个dat二进制文件,读的时候应该是byte字节型,我想把里面的二进制数转成十进制数,输出到文本文件中。注意是byte字节型的二进制转十进制,网上流传的代码都... vb设计,有一个dat二进制文件,读的时候应该是byte字节型,我想把里面的二进制数转成十进制数,输出到文本文件中。注意是byte字节型的二进制转十进制,网上流传的代码都是string型的。我实在不知道该怎么操作这个bytes型,不了解。有谁知道该怎么做么?请把具体代码写出来,先谢谢了!!!
首先谢谢大家,对不起,可能是我没说明白。现在我有一个二进制文件,用open二进制打开,get #1,mybyte后,可以化成十进制,但老师的要求是四个字节是一个A数据,不知道该怎么做啊,老师要求的是什么意思啊?该怎么做呢?谢谢大家!
展开
 我来答
刀成朝1
2009-04-17 · TA获得超过1334个赞
知道大有可为答主
回答量:763
采纳率:0%
帮助的人:771万
展开全部
2009-4-16 09:20
byte类型,读入后输出,本来就是十进制的了。任何数据在磁盘上都是以二进制存储的。

Private Sub Command1_Click()
Dim b() As Byte, fName As String, lfile As Long, i As Long
fName = "c:\BOOTSECT.DOS"
lfile = FileLen(fName)
ReDim b(1 To lfile)
Open fName For Binary As 1#
Get #1, , b
Close
For i = 1 To lfile
Debug.Print b(i);
Next i
End Sub
将c:\BOOTSECT.DOS换成你需要的文件名就可以了

2009-4-17 09:10
PS:
如果存储的数是以long类型的标准的4个字节存储(存储在前面的为数据的低位,如:存储数据为03 02 01 00,实际是 &H00010203)的话,只需要把读入数的类型定义为long类型,循环的结束条件设为 lfile/4就可以了。
如果存储的数不是以long类型的标准存储的话,那就要用到CopyMemory。
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, source As Any, ByVal Length As Long)
Private Sub Command1_Click()
Dim b() As Byte, fName As String, lfile As Long, i As Long, j As Integer
Dim b1(0 To 3) As Byte, lngTMP As Long
On Error Resume Next
fName = "c:\BOOTSECT.DOS"
lfile = FileLen(fName)
ReDim b(1 To lfile)
Open fName For Binary As 1#
Get #1, , b
Close
For i = 1 To lfile / 4
For j = 0 To 3
b1(j) = b(i + 3 - j)
Debug.Print Hex(b1(j)); " ";
Next j
CopyMemory lngTMP, b1(0), 4
Debug.Print , lngTMP
Next i
End Sub
Winnip888
2009-04-16 · TA获得超过1996个赞
知道小有建树答主
回答量:676
采纳率:0%
帮助的人:600万
展开全部
二进制转十进制

这个数据转换我想是有算法的,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wolaopojiaoyue
2009-04-16
知道答主
回答量:37
采纳率:0%
帮助的人:0
展开全部
Private Sub Command5_Click()
Dim l2 As Long
Text3.Text = ""
If IsNumeric(Text4.Text) = False Then Exit Sub
Text3.Locked = True
l2 = CLng(Text4.Text)
Do While l2 > 0
Text3.Text = l2 Mod 2 & Text3.Text
l2 = l2 \ 2
Loop
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
intehel
2009-04-16 · TA获得超过1294个赞
知道大有可为答主
回答量:1601
采纳率:100%
帮助的人:1901万
展开全部
没多复杂,用CStr转换就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiayu50000
2009-04-16 · 超过55用户采纳过TA的回答
知道答主
回答量:184
采纳率:100%
帮助的人:0
展开全部
第一步建立函数 BYTETOSTR
你自己根据需要去写
二进制数转成十进制代码如下:
在窗体上先建立一个TEXT和COMMAND
Private Sub Command1_Click()
Dim s As Integer, s1 As Long, str1 As String, StrLine() As String
str1 = ""
s1 = 0
s = Len(Text1.Text) '这里是你输入的二进制数
For i = 1 To s
str1 = str1 & Mid(Text1.Text, i, 1) & "|"
s1 = s1 + 2 ^ (s - i) * Val(Mid(Text1.Text, i, 1))

Next i
MsgBox s1
End Sub

运算的结果就是十进制数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ljl88900
2009-04-16 · TA获得超过2661个赞
知道大有可为答主
回答量:2197
采纳率:100%
帮助的人:2827万
展开全部
用byte字节型读取的数据就是10进制数据,没有必要再进行转换,你只要把它直接输出到文本文件可即可。

代码如下:

Private Sub Command1_Click()
Dim i As Integer, s As String, BB() As Byte, FileName As String
FileName = "c:\1.dat"
i = FreeFile
ReDim BB(FileLen(FileName) - 1)
Open FileName For Binary As #i
Get #i, , BB '读取文件到byte字节型数组
Close #i
FileName = "c:\1.txt"
Open FileName For Binary As #1
For i = 0 To UBound(BB)
Put #1, , BB(i) & " " '输出到文件文件
Next
Close #1
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式