If Text1.Text < > "" Then
Text2.Text = ""
a = Text1.Text
l = Len(Text1.Text)
If a < > 0 Then
For i = 1 To l
c = Mid(Text1.Text, i, 1)
If c > = "0" And c < = "9" Then
Do While a
r = a Mod 16
a = a \ 16
Select Case r
Case 0: r = "0"
Case 1: r = "1"
Case 2: r = "2"
Case 3: r = "3"
Case 4: r = "4"
Case 5: r = "5"
Case 6: r = "6"
Case 7: r = "7"
Case 8: r = "8"
Case 9: r = "9"
Case 10: r = "a"
Case 11: r = "b"
Case 12: r = "c"
Case 13: r = "d"
Case 14: r = "e"
Case 15: r = "f"
End Select
Text2.Text = r + Text2.Text
Loop
Else: Text2.Text = "输入错误"
Exit Sub
End If
Next
Else: Text2.Text = a
End If
Else: Text2.Text = "0"
End If
Text2.Text = ""
a = Text1.Text
l = Len(Text1.Text)
If a < > 0 Then
For i = 1 To l
c = Mid(Text1.Text, i, 1)
If c > = "0" And c < = "9" Then
Do While a
r = a Mod 16
a = a \ 16
Select Case r
Case 0: r = "0"
Case 1: r = "1"
Case 2: r = "2"
Case 3: r = "3"
Case 4: r = "4"
Case 5: r = "5"
Case 6: r = "6"
Case 7: r = "7"
Case 8: r = "8"
Case 9: r = "9"
Case 10: r = "a"
Case 11: r = "b"
Case 12: r = "c"
Case 13: r = "d"
Case 14: r = "e"
Case 15: r = "f"
End Select
Text2.Text = r + Text2.Text
Loop
Else: Text2.Text = "输入错误"
Exit Sub
End If
Next
Else: Text2.Text = a
End If
Else: Text2.Text = "0"
End If
int a16toi(char * pNumber)
{
int ret = 0;
int len = strlen(pNumber);
int pos = len;
while(pos--)
switch(pNumber[pos])
{
case '0': break;
case '1': ret += (len-pos-1) ? 1 * 1<<(4* (len-pos-1)) : 1;break;
case '2': ret += (len-pos-1) ? 2 * 1<<(4* (len-pos-1)) : 2;break;
case '3': ret += (len-pos-1) ? 3 * 1<<(4* (len-pos-1)) : 3;break;
case '4': ret += (len-pos-1) ? 4 * 1<<(4* (len-pos-1)) : 4;break;
case '5': ret += (len-pos-1) ? 5 * 1<<(4* (len-pos-1)) : 5;break;
case '6': ret += (len-pos-1) ? 6 * 1<<(4* (len-pos-1)) : 6;break;
case '7': ret += (len-pos-1) ? 7 * 1<<(4* (len-pos-1)) : 7;break;
case '8': ret += (len-pos-1) ? 8 * 1<<(4* (len-pos-1)) : 8;break;
case '9': ret += (len-pos-1) ? 9 * 1<<(4* (len-pos-1)) : 9;break;
case 'a': ret += (len-pos-1) ? 10 * 1<<(4* (len-pos-1)) : 10;break;
case 'b': ret += (len-pos-1) ? 11 * 1<<(4* (len-pos-1)) : 11;break;
case 'c': ret += (len-pos-1) ? 12 * 1<<(4* (len-pos-1)) : 12;break;
case 'd': ret += (len-pos-1) ? 13 * 1<<(4* (len-pos-1)) : 13;break;
case 'e': ret += (len-pos-1) ? 14 * 1<<(4* (len-pos-1)) : 14;break;
case 'f': ret += (len-pos-1) ? 15 * 1<<(4* (len-pos-1)) : 15;break;
case 'A': ret += (len-pos-1) ? 10 * 1<<(4* (len-pos-1)) : 10;break;
case 'B': ret += (len-pos-1) ? 11 * 1<<(4* (len-pos-1)) : 11;break;
case 'C': ret += (len-pos-1) ? 12 * 1<<(4* (len-pos-1)) : 12;break;
case 'D': ret += (len-pos-1) ? 13 * 1<<(4* (len-pos-1)) : 13;break;
case 'E': ret += (len-pos-1) ? 14 * 1<<(4* (len-pos-1)) : 14;break;
case 'F': ret += (len-pos-1) ? 15 * 1<<(4* (len-pos-1)) : 15;break;
default:
break;
}
return ret;
}