十六进制和字节集到底是什么关系?还有,文件是不是可以转成字节集?

比如我想把一个文件以文本的方式保存,是不是要做成字节集??... 比如我想把一个文件以文本的方式保存,是不是要做成字节集?? 展开
 我来答
满以柳J7
推荐于2017-12-15 · TA获得超过539个赞
知道小有建树答主
回答量:545
采纳率:66%
帮助的人:546万
展开全部
我的理解如下,希望能帮到你:
1、字节是一个8位的二进制数,16进制只是在数据(字符)表示中的一种表述方式(分2进制,8进制,10进制...你应该知道的),ASCII表示字符中,一个字符用一个字节大小来表示,定义范围是: 00~FF(可以参考ascii 对照表),这也是计算机语言最原始的定义方式。在中文字符的表示中,因为除了原始的ASCII (英文)字符外,还要对应表示汉字,所以,汉字就升级为两个字节表示一个汉字了。
2、字节的概念理解后,字节集应该不难理解了。
3、文件是存放到媒介(磁盘算其中一种)上的字符集合,当你按字节的方式读取并呈现文件内容的时候,就可以用字节集合的方式了。
4、字节集合你完全可以理解为一个数组.
更多追问追答
追问
所以呢,怎么把文件转成字节集?然后看着就像文本一样

补充问下,是不是,把文件用二进制方式读出?但是怎么换成十六进制,我主要是要把一个文件转成字节集?
追答
是这样的,你的理解我觉得完全是对的,我觉得主要是你可能纠结在"字节集"这个概念上,对于"字节集"这个概念,我的理解就是一个数组,当然你要按二进制格式读取文件放到一个字节集中,完全是可以的,这个操作就要看所读取文件字节的大小而定了,如果文件字节太大的话,系统的效率不是很高,且数组的定义是否有上限,也要考虑的.下面给你参考VB  读按二进制格式读取文件的程序:
Dim tmpStr As Byte '每次读取一个字节
Dim i As Integer

Dim readStr As String '存放转换后的16进制字符串

FileName = "D:\sz002490.day" '读取一个固定文件,如002490的股票日线数据

FileNum = FreeFile()
Open FileName For Binary As FileNum '按二进制格式读文件

readStr = ""
i = 1

'开始读文件
Do While Not EOF(FileNum)
Get #FileNum, , tmpStr '读取一个字节
'转换成16进制,并判断否为2位,否则前面增加'0',这样显示比较规整
If Len(Hex(tmpStr)) = 1 Then
readStr = readStr & "0" & Hex(tmpStr) & " "
Else
readStr = readStr & Hex(tmpStr) & " "
End If
'可以按字符串的方式显示出来
readStr = readStr + " " + Hex(tmpStr)

i = i + 1
Loop '直到文件读取结束
Close FileNum '关闭文件
这样读取的字节按二进制存放在字符串 readStr中了.
当然你也可以在读取文件内容以前,根据文件大小定义一个存放文件字节的数组(字节集),在循环读取文件中,按16进制转换后存放在这个数组中.

dim FileLen as long
Dim readBytes() As String '要定义成字符串

FileLen=LOF(FileNum)
ReDim readByte(FileLen)

Do While Not EOF(FileNum)
Get #FileNum, , tmpStr '读取一个字节
If Len(Hex(tmpStr)) = 1 Then
readBytes(i)= "0" & Hex(tmpStr)
Else
readBytes(i) = Hex(tmpStr)
End If
i = i + 1
Loop '直到文件读取结束
Close FileNum '关闭文件
这样你的readBytes()中就是以16进制的方式读取的文件内容了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式