关于十六进制转换成相应的汉字或字母

nslhao 2004-01-14 11:37:39
请问各位高手:
怎样将一串十六进制的字符串转换成相应的汉字或字母(可能是汉字与字母或数字组成)

由于小弟对进制转换不熟,请详细指教,小弟万分感激
...全文
210 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
northwolves 2004-01-14
  • 打赏
  • 举报
回复
贴出你的十六进制的字符串
northwolves 2004-01-14
  • 打赏
  • 举报
回复
Function tohanzi(ByVal data As String) As String

Dim i As Long
For i = 1 To Len(data) Step 4
tohanzi = tohanzi & Chr("&H" & Mid(data, i, 4))
Next
End Function

Private Sub Command2_Click()
Const data = "B2D2C2AE"
MsgBox tohanzi(data)
End Sub
northwolves 2004-01-14
  • 打赏
  • 举报
回复
楼上正解。

Function tohanzi(ByVal data As String) As String

Dim i As Long
For i = 1 To Len(data) Step 4
tohanzi = tohanzi & Chr("&H" & Mid(data, i, 2))
Next
End Function

Private Sub Command2_Click()
Const data = "B2D2C2AE"
MsgBox tohanzi(data)
End Sub
rainstormmaster 2004-01-14
  • 打赏
  • 举报
回复
Option Explicit

Private Sub Command1_Click()
Dim s As String
s = String2Hex("今天abc123")
MsgBox s
s = Hex2String(s)
MsgBox s
End Sub

Private Function String2Hex(ByVal s As String) As String
On Error Resume Next
Dim bytearr() As Byte
bytearr = StrConv(s, vbFromUnicode)
Dim temps As String
Dim temp As Byte
Dim i As Long
Dim outs As String
For i = 0 To UBound(bytearr)
temp = bytearr(i)
temps = Hex(temp)
temps = Right("00" + temps, 2)
outs = outs + temps
Next
String2Hex = outs
End Function
Private Function Hex2String(ByVal s As String) As String
On Error Resume Next
Dim bytearr() As Byte
Dim temps As String
Dim temp As Byte
Dim i As Long
Dim j As Long
j = 0
Dim outs As String
For i = 1 To Len(s) Step 2
temps = Mid(s, i, 2)
temp = Val("&H" & temps)
ReDim Preserve bytearr(j)
bytearr(j) = temp
j = j + 1
Next
outs = StrConv(bytearr, vbUnicode)
Hex2String = outs
End Function
计算机应用基础数据在计算机中的表示 计算机应用基础数据在计算机中的表示(共38张PPT)全文共38页,当前为第1页。 一、计算机中数据的分类 数值数据 表示量的大小、正负,如整数、小数等。 字符数据 也叫非数值数据,用以表示一些符号、标记,如英文字母A~Z、a~z、数字0~9、各种专用字符+、-、/、()……及标点符号等。 汉字、图形、声音数据也属于非数值数据。 计算机应用基础数据在计算机中的表示(共38张PPT)全文共38页,当前为第2页。 二、计算机的数制 进位计数制 如果数制只采用R个 基本符号(例如,0,1, 2,……,R-1) 表示数值,则称为R数制, R称为该数制的基数, 而数制中R个固定的 基本符号称为"码数"。 处于不同位置的 数码代表的值不同, 与它所在位置的"权"值有关。 计算机应用基础数据在计算机中的表示(共38张PPT)全文共38页,当前为第3页。 进位制 数符(数码) 基数 规则 十进制D 0,1,2,3,4,5,6,7,8,9 10 逢十进一 二进制B 0,1 2 逢二进一 八进制O 0,1,2,3,4,5,6,7 8 逢八进一 十六进制H 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F 16 逢十六进一 数字电子技术中使用的四种数制 在进位计数制中,每一种数制都有固定的数符和基数,并且N进制的进位是:逢N进一。 计算机应用基础数据在计算机中的表示(共38张PPT)全文共38页,当前为第4页。 常用进位计数制 1. 十进制 (后缀加上D) 在十进制中,每个数位规定使用的数码为0,1, 2,…, 9,共10个,故其进位基数R为10。其计数规则是"逢十进一"。各位的权值为10i,i是各数位的序号。 十进制数用下标"D"表示,也可省略。例如: 十进制数人们最熟悉, 但机器实现起来困难。 计算机应用基础数据在计算机中的表示(共38张PPT)全文共38页,当前为第5页。 2. 二进制(后缀加上B) 在二进制中,每个数位规定使用的数码为0,1,共2个数码,故其进位基数R为2。其计数规则是"逢二进一"。 各位的权值为2i,i是各数位的序号。 二进制数用下标"B"表示。例如: 二进制数由于只需两个态,机器实现容易, 因而二进制是数字系统唯一认识的代码。但二进制书写太长。 计算机应用基础数据在计算机中的表示(共38张PPT)全文共38页,当前为第6页。 可见,一个数若用二进制数表示要比相应的十进制数的位数长得多,但采用二进制数却有以下优点: 因为它只有0、1 两个数码,在数字电路中利用一个具有两个稳定状态且能相互转换的开关器件就可以表示一位二进制数,因此采用二进制数的电路容易实现, 且工作稳定可靠。 算术运算规则简单。二进制数的算术运算和十进制数的算术运算规则基本相同,惟一区别在于二进制数是"逢二进一"及"借一当二",而不是"逢十进一"及"借一当十"。 计算机应用基础数据在计算机中的表示(共38张PPT)全文共38页,当前为第7页。 例如: 计算机应用基础数据在计算机中的表示(共38张PPT)全文共38页,当前为第8页。 3. 八进制(后缀加上O) 在八进制中,每个数位上规定使用的数码为0,1,2, 3,4,5,6,7,共8个,故其进位基数R为8。其计数规则为"逢八进一"。各位的权值为 8i,i是各数位的序号。 八进制数用下标"O"表示。例如: (752.34)O=7×82+5×81+2×80+3×8-1+4×8-2 因为23=8,因而三位二进制数可用一位八进制数表示。 计算机应用基础数据在计算机中的表示(共38张PPT)全文共38页,当前为第9页。 4. 十六进制 (后缀加上H) 在十六进制中,每个数位上规定使用的数码符号为0,1, 2,…, 9, A, B, C, D, E, F,共16个,故其进位基数R为16。其计数规则是"逢十六进一"。各位的权值为16i, i是各个数位的序号。 十六进制数用下标"H"表示,例如: (BD2.3C)H=B×162+D×161+2×160+3×16-1+C×16-2 =11×162+13×161+2×160+3×16-1+12×16-2 因为24=16,所以四位二进制数可用一位十六进制数表示。 在计算机应用系统中,二进制主要用于机器内部的数据处理,八进制和十六进制主要用于书写程序,十进制主要用于运算最终结果的输出。 计算机应用基础数据在计算机中的表示(共38张PPT)全文共38页,当前为第10页。 1数制间的转换 十进制数 非十进制数 非十进制数 十进制数 二、八、十六进制之间的转换 计算机应用基础数据在计算机中的表示(共38张PPT)全文共38页,当前为第11页。 8 75 3 8 9 1 8 1 1 0 结果为(75)10 =(113)8 余数法:除基数取余数

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧