1、vb6示例:
Private Sub Command1_Click()
Dim h As String, n As Long
h = InputBox("输入十进制数,以0x或0X开始,最大8个F", _
"输入十六进制数", "0xFFFF")
If Left(h, 2) <> "0x" And Left(h, 2) <> "0X" Then Exit Sub
If Len(h) > 10 Then h = Left(h, 10)
If IsNumeric("&H" & Mid(h, 3)) Then
n = "&H" & Mid(h, 3)
Debug.Print n
Else
Debug.Print "不是十六进制数"
End If
End Sub
2、十六进制数是一种逢十六进一的计数方式,基数是16,由0~9,A-F组成,通常以0x或0X开头,如0xF表示10进制15。
以下为改后程序。主要问题有:
1、Dec函数声明格式不对;
2、未加
3、cin.getline用法不对。
#include
#include
int Dec(char[]);
void main(void){
int i=0;char t[20];
cout<< "Input:";
cin.getline(t,20,'\n');
cout<< "Output:"<
int Dec(char s[]){
int i,n=0;
for(i=0;s[i];i++){
if (s[i]== ' ') break;
if( s[i]>= '0'&&s[i]<= '9') n=n*16+s[i]-'0';
else
if( s[i]>= 'a' &&s[i]<= 'f') n=n*16+s[i]-'a'+10;
else
if( s[i]>= 'A'&&s[i]<= 'F') n=n*16+s[i]-'A'+10;
else {
cout<< "非法十六进制数!"<
}
return n;
}