写一个函数,输入一个十六进制数,输出相应的十进制数。
- 提问者网友:山高云阔
- 2021-07-16 05:40
- 五星知识达人网友:怙棘
- 2021-07-16 06:01
void main(){
int i=0;
int value=0;
char ch[10];
printf("请输入一个16进制数:");
gets(ch);
while (ch[i])
{
if(ch[i]>='A'&&ch[i]<='F')
value=(ch[i]-55)+16*value;
else if(ch[i]>='a'&&ch[i]<='f')
value=(ch[i]-87)+16*value;
else if(ch[i]>='0'&&ch[i]<='9')
value=(ch[i]-48)+16*value;
else
{
printf("输入有误\n");
break;
}
i++;
}
printf("十进制数为%d\n",value);
}
- 1楼网友:舍身薄凉客
- 2021-07-16 07:33
vb的方法,使用方法:call hex_to_dec("十六进制数据")
Public Function HEX_to_DEC(ByVal Hex As String) As Long Dim i As Long Dim B As Long Hex = UCase(Hex) For i = 1 To Len(Hex) Select Case Mid(Hex, Len(Hex) - i + 1, 1) Case "0": B = B + 16 ^ (i - 1) * 0 Case "1": B = B + 16 ^ (i - 1) * 1 Case "2": B = B + 16 ^ (i - 1) * 2 Case "3": B = B + 16 ^ (i - 1) * 3 Case "4": B = B + 16 ^ (i - 1) * 4 Case "5": B = B + 16 ^ (i - 1) * 5 Case "6": B = B + 16 ^ (i - 1) * 6 Case "7": B = B + 16 ^ (i - 1) * 7 Case "8": B = B + 16 ^ (i - 1) * 8 Case "9": B = B + 16 ^ (i - 1) * 9 Case "A": B = B + 16 ^ (i - 1) * 10 Case "B": B = B + 16 ^ (i - 1) * 11 Case "C": B = B + 16 ^ (i - 1) * 12 Case "D": B = B + 16 ^ (i - 1) * 13 Case "E": B = B + 16 ^ (i - 1) * 14 Case "F": B = B + 16 ^ (i - 1) * 15 End Select Next i HEX_to_DEC = B End Function