当前位置:首页 >> 信息与通信 >>

VB关于ASCII码转换成16进制的问题


VB 关于 ASCII 码转换成 16 进制的问题
悬赏分:5 - 解决时间:2008-10-21 16:01

有这样一团代码:他能实现字符串转换成 ASCII 码 16 进制 但是我想让他实现 ASCII 码 16 进制转换成字符串 谢谢各位大哥 希望能有代码 并且给出 比较详细的说明 我会追加积分的 麻烦了!~~ Private Sub Com

mand1_Click() Dim A$, i%, B$ A = Text1.Text For i = 1 To Len(A) B = B & Hex(Asc(Mid(A, i, 1))) Next Text2.Text = B End Sub

建立两个文本框 一个按钮 Private Sub Command1_Click() Dim A1%, B1$, i%, p% '定义变量 A1 = Text1.Text '将输入的 ASCII 码赋值给 A1 For i = Len(A1) To 1 Step -1 '循环 B1 = Mid(UCase(A1), i, 1) '取各位数字 为了方便转为大写 p = Len(A1) - i '位权 Select Case B1 '将 16 进制转为 10 进制 Case "A" C = C + 16 ^ p * 10 Case "B" C = C + 16 ^ p * 11 Case "C" C = C + 16 ^ p * 12 Case "D" C = C + 16 ^ p * 13 Case "E" C = C + 16 ^ p * 14 Case "F" C = C + 16 ^ p * 15 Case Else C = C + 16 ^ p * Val(B1) End Select Next Text2.Text = Chr(C) '转换为字符 End Sub

以上是对你程序的修改的方法 其实完全可以很简单的 Private Sub Command1_Click() Dim A1%, B1$, i%, p% '定义变量 A1 = Text1.Text End Sub '将输入的 ASCII 码赋值给 A1 Text2.Text = Chr(Val("&H" & A1)) '转换为字符 利用数值转换

试试效果是不是一样啊

求 vb 中将字符串转换为 16 进制的 ascii 码代码
悬赏分:110 - 解决时间:2008-2-20 16:46

ascii 码为 16 进制形式的 字符串包含数字字母和汉字 问题补充: 问题补充: 得到的 ascii 码全部为大写、并且取值是从后往前 欢迎大家积极帮助积分定当顷囊相送 楼上的不是 VB 代码,不要乱贴啊 使用 VB 内部函数 Hex$(x) 是把 10 进制的数字变成 16 进制 如 y=Hex$(10)就是求 10 的十六进制数 那么 y=A 字母,数字,和汉字的 asc 码都只要用 asc()这个函数就可以求出来了 你把问题写写清楚的话,我可以写下代码 Option Explicit Dim aa$, bb$, hexstr$, I&, S Private Sub Command1_Click() Dim lendd As Integer, n As Integer lendd = Len(Text2.Text) Text3.Text = "" n=0 For I = lendd To 1 Step -1 n=n+1 Text3.Text = Text3.Text + Mid(Text2.Text, I, 1) If n = 4 Then Text3.Text = Text3.Text & "-": n = 0

Next I

End Sub Private Sub command2_Click() aa = "" If Text1.Text = "" Then Exit Sub For I = 1 To Len(Text1.Text) aa = aa & CStr(ZFto16(Mid(Text1.Text, I, 1))) Next I Text2.Text = Trim(aa) Text1.Text = "" End Sub Public Function ZFto16(hz$) As String If hz = "" Then Exit Function ZFto16 = Hex(Asc(hz)) End Function Public Function ZF16toZF(hexstr$) As String If hz = "" Then Exit Function ZF16toZF = Chr("&H" & hexstr)

End Function
其他回答 { if(ch>='0' && ch<= '9') return (ch-'0'); if(ch>='a' && ch<= 'f') return (ch-'a'+0xa); if(ch>='A' && ch<= 'F') return (ch-'A'+0xa); return -1; } /*没处理非法字符,可以根据函数 char2int()返回值处理*/ bool convert(char *dst, char *src) { char *p=src; char *q=dst; int len = strlen(src);
共 2 条

int char2int(char ch)

/*奇数长度,按右对齐方式处理*/ if(len%2) { *q++ = char2int(*p++); } while(*p) { *q = char2int(*p++) << 4; *q |= char2int(*p++) & 0x0f; q++; } return true; } 看看好使不

void hex_to_ascii(unsigned char dat) { unsigned char dat_buff; dat_buff = dat; dat = dat&0x0f; if((dat>=0)&&(dat<=9)) { dat += 0x30; } else dat += 0x37; UART_TX_buff[7] = dat; dat = dat_buff; dat >>= 4; dat = dat&0x0f; if((dat>=0)&&(dat<=9)) { dat += 0x30; } else dat += 0x37; UART_TX_buff[8] = dat;

} void ascii_to_hex(void) { unsigned char cnt,i; for(cnt=0,i=0;cnt<6;cnt++,cnt++,i++) { Twi_Hex_Data[i] = Twi_ASCI_Data[cnt+1];//先放 ASCII 的高位(四位) Twi_Hex_Data[i] <<= 4; Twi_Hex_Data[i] += Twi_ASCI_Data[cnt]; } }

#define Hex2Ascii(data) (data < 10)? ('0' + data) : ('A' + data - 10) void Byte2ASCII(unsigned char data, unsigned char *pBuf) { unsigned char temp; temp = data & 0x0F; pBuf[1] = Hex2Ascii(temp); temp = data >> 4; pBuf[0] = Hex2Ascii(temp); } 这个短点 再加上两字节的: #define Hex2Ascii(data) (data < 10)? ('0' + data) : ('A' + data - 10) void Byte2ASCII(unsigned char data, unsigned char *pBuf) { unsigned char temp; temp = data & 0x0F; pBuf[1] = Hex2Ascii(temp); temp = data >> 4; pBuf[0] = Hex2Ascii(temp); }

void Uint2ASCII(unsigned short data, unsigned char *pBuf) {

unsigned char temp; temp = (unsigned char)(data & 0x000F); pBuf[3] = Hex2Ascii(temp); data >>= 4; temp = (unsigned char)(data & 0x000F); pBuf[2] = Hex2Ascii(temp); data >>= 4; temp = (unsigned char)(data & 0x000F); pBuf[1] = Hex2Ascii(temp); data >>= 4; temp = (unsigned char)(data); pBuf[0] = Hex2Ascii(temp); } #define Ascii2Hex(data) (data >= '0' && data <= '9')? (data - '0') : ((data >= 'A' && data <= 'F')? (da ta - 'A' + 10) : ((data >= 'a' && data <= 'f')? (data - 'a' + 10) : 0)) unsigned char ASCII2Byte(unsigned char *pBuf) { unsigned char temp; unsigned char c; c = *pBuf++; temp = ((unsigned char)Ascii2Hex(c)) << 4; c = *pBuf; temp += Ascii2Hex(c); return temp; } unsigned short ASCII2Uint(unsigned char *pBuf) { unsigned short temp; unsigned char c; c = *pBuf++; temp = ((unsigned short)Ascii2Hex(c)) << 12; c = *pBuf++; temp += ((unsigned short)Ascii2Hex(c)) << 8; c = *pBuf++; temp += ((unsigned short)Ascii2Hex(c)) << 4;

c = *pBuf; temp += Ascii2Hex(c); return temp; }

Dim str As String Dim dst As String str = "4e" str = "&h" + str dst = ChrW(Val(str)) Option Explicit Private Sub Command1_Click() Dim cHex As String, S As String, HexStr As String Dim i As Long cHex = "4e323830372e34303039324531323131332e3936313739" For i = 1 To Len(cHex) Step 2 S = "&H" & Mid$(cHex, i, 2) HexStr = HexStr & Chr$(CLng(S)) Next Debug.Print HexStr End Sub Option Explicit Private Sub Command1_Click() Dim byteHEX() As Byte Dim strP As String Dim intP As Integer strP = Text1.Text intP = Len(strP) If intP Mod 2 <> 0 Then strP = "0" & strP intP = intP / 2 ReDim byteHEX(intP) Text2.Text = "" For intP =

'

我的函数是 Public Function GbkStr(ByVal ss As String) As String On Error Resume Next Dim x As String Dim Y As Variant Dim i As Integer Dim j As Integer ReDim b(0 To (Len(ss) / 2)) As Byte

j=0

For i = 1 To Len(ss)

x = Mid$(Trim(ss), i, 2)

Y = CLng("&H" & x)

If Y < 0 Then Y = Y + 65536

b(j) = Y

i=i+1 j=j+1 Next i

GbkStr = StrConv(b, vbUnicode) End Function

请问具体该怎么做啊???

If Y < 0 Then Y = Y + 65536 再判断一下是否是不可显示的字符(H0~H20) ,如果是,则转成"." 我写的能显示中文,虽然有时有乱码. 因为是写的共用函数里的部分,在调用时不需要使用,所以用了条件编译. CopyMemory 是 API 函数,声明如下: 程序代码: 程序代码: Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByRef Destination As Any, B yRef Source As Any, ByVal Length As Long)

程序代码: 程序代码:

#If tools Then '工具显示 16 进制代码 With Form1.Text3 Dim txj As String Dim txj2 As String Dim txj3 As String Dim txp As Boolean Dim txj4 As Integer Dim txk(1) As Byte

.Text = "加密结果" & vbCrLf & "

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F"

For i = 0 To optr - 1 '.Text =.Text & vbcrlf & txj = Hex(pout(i)) If Len(txj) = 1 Then txj = "0" & txj txj2 = txj2 & " " & txj If pout(i) < 128 Then If pout(i) >= 32 Then txj3 = txj3 & Chr(pout(i)) Else txj3 = txj3 & "." End If Else If Not txp Then txk(1) = pout(i) txk(0) = pout(i + 1) CopyMemory txj4, txk(0), 2 txj3 = txj3 & Chr(txj4) txp = True Else txp = False End If End If If (i + 1) Mod 16 = 0 Then txj = "0" & i \ 16 txj = String(4 - Len(txj), "0") & txj .Text = .Text & vbCrLf & txj & " " & txj2 & " " & txj3 txj2 = "" txj3 = "" End If '换行,按每行 16 个字节排列 '设置取走了下一个字符 '是否上一个字符输出时,取走了这个字符,否,输出中文 '这是生成 16 进制部分 '从这里开始是生成 ASCII 部分 '可显示字符

Next i

txj = "0" & i \ 16

'最后一行的显示

txj = String(4 - Len(txj), "0") & txj .Text = .Text & vbCrLf & txj & " " & txj2 & Space(48 - Len(txj2)) & " " & txj3 End With '工具输出结束 #End If

[C/C++] ASCII 转 HEX 和 HEX 转 ASCII 算法
void hex_to_ascii(unsigned char dat) { unsigned char dat_buff;

dat_buff = dat; dat = dat&0x0f; if((dat>=0)&&(dat<=9)) { dat += 0x30; } else dat += 0x37; UART_TX_buff[7] = dat;

dat = dat_buff; dat >>= 4; dat = dat&0x0f; if((dat>=0)&&(dat<=9)) { dat += 0x30; } else dat += 0x37; UART_TX_buff[8] = dat; } void ascii_to_hex(void) {

unsigned char cnt,i;

for(cnt=0,i=0;cnt<6;cnt++,cnt++,i++) { Twi_Hex_Data = Twi_ASCI_Data[cnt+1];//先放 ASCII 的高位(四位)

Twi_Hex_Data <<= 4; Twi_Hex_Data += Twi_ASCI_Data[cnt]; } }


相关文章:
VB关于ASCII码转换成16进制的问题
有这样一团代码:他能实现字符串转换成 ASCII 码 16 进制 但是我想让他实现 ASCII 码 16 进制转换成字符串 谢谢各位大哥 希望能有代码 并且给出 比较详细的...
VB关于ASCII码转换成16进制的问题
VB关于ASCII码转换成16进制的问题_信息与通信_工程科技_专业资料。VB关于ASCII码转换成16进制的问题 VB 关于 ASCII 码转换成 16 进制的问题悬赏分:5 - 解决时间...
ASCII码转换成16进制程序以及ASCII码与16进制对应关系
ASCII码转换成16进制程序以及ASCII码与16进制对应关系_信息与通信_工程科技_专业资料。里面包含ASCII码转换成16进制C语言程序,以及ASCII码与Hex的对应关系图 ...
ASCII码与16进制转换对照表
ASCII码16进制转换对照表_IT/计算机_专业资料。十六进制代码 MCS 字符或缩写 ASCII 控制字符 DEC 多国字符名 1 00 01 02 03 04 05 06 07 08 09 0A 0...
ASCII码转16进制对照表
ASCII码转16进制对照表_计算机软件及应用_IT/计算机_专业资料。ASCII与16进制...VB关于ASCII码转换成16进... 11页 免费 ASCII-16进制转换表 5页 免费 ASCII...
十六进制与ASCII码转换
十六进制ASCII码转换_理学_高等教育_教育专区。十六进制ASCII码转换 ASCII与16进制转换 ASCII 16 进制 ASCII 16 进制 ASCII 16 进制 ASCII 16 进制 NUL SOH...
十六进制与ASCII码互转代码
十六进制与ASCII码互转代码_计算机软件及应用_IT/计算机_专业资料。//函 数名:AscToHex() //功能描述:把 ASCII 转换为 16 进制 unsigned char AscToHex(...
如何把一位16进制的数转换成对应的ASCII码 2
daa adc al,40h daa ret htoasc endp 补充:之前第一段话说的有问题,所以...16进制转化成ASCII码并传... 2页 1下载券 VB关于ASCII码转换成16进... 11...
C--16进制文本转换为ascii码
C--16进制文本转换为ascii码_计算机软件及应用_IT/计算机_专业资料。我用的将...VB关于ASCII码转换成16进... 11页 免费 将一个ASCII码数字(十六... 2页...
16进制转化成ASCII码并传送
16进制转化成ASCII码并传送_工学_高等教育_教育专区。单片机C语言的应用 ...16进制与10进制ASCII码对... 1页 免费 VB关于ASCII码转换成16进... 暂无评价...
更多相关标签:
vb.net 16进制转ascii | vb 16进制转ascii | vb ascii转十六进制 | ascii 16进制转换 | ascii及进制转换器 | ascii码转换十六进制 | 16进制ascii码转换器 | 16进制转换ascii码 |