输入一个十六进制数(字符串输入),输出相应的十进制数.

作者&投稿:迪李 (若有异议请与网页底部的电邮联系)
1位十六进制数的ASCII码是?与相应的十进制数的差值是?~

十六进制数有0到9这十个数字和A到F这六个字母组成(暂只考虑大写字母) 0的ASCII码是48,所以,数字部分和对应ASCII码的差应该是48; 而字母A的ASCII码值是65,但A表示的是十进制10的值,所以字母部分的差是55 对于同一个字母,大写字母比小写字母小32,如A是65,而a是97

#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
char a[10];
void convert(char a[]);
printf("请输入十六进制数:");
gets(a);//输入十六进制数
convert(a);
return 0;
}
void convert(char a[])
{
int n,i,num=0;
n=strlen(a);
for(i=n-1;i>=0;i--)
{
if(a>='0'&&a<='9')
num+=(a-'0')*pow(16,n-1-i);
else if(a>='A'&&a<='Z')
num+=(10+(a-'A'))*pow(16,n-1-i);
else if(a>='a'&&a<='z')
num+=(10+(a-'a'))*pow(16,n-1-i);
}
printf("转换十进制为:");
printf("%d",num);
}

扩展资料:gets()的用法:
gets()函数用来从标准输入设备(键盘)读取字符串直到回车结束;但回车符不属于这个字符串。其调用格式为:gets(s);其中s为字符串变量(字符串数组名或字符串指针)。
gets(s)函数与scanf("%s",s)相似,但不完全相同,使用scanf("%s",s)函数输入字符串时存在一个问题,就是如果输入了空格会认为输入字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到回车为止。
示例:
#include<stdio.h>
int main()
{
char s[20];
printf("What's your name?
");
gets(s);
printf("%s
",s);
return 0;
}
当输入a bde回车的时候,会输出a bde。

#include&lt;stdio.h&gt;

#include&lt;math.h&gt;

#include&lt;string.h&gt;

int main()

{

char a[10];

void convert(char a[]);

printf("请输入十六进制数:");

gets(a);//输入十六进制数

convert(a);

return 0;

}

void convert(char a[])

{

int n,i,num=0;

n=strlen(a);

for(i=n-1;i&gt;=0;i--)

{

if(a<i>&gt;='0'&&a<i>&lt;='9')

num+=(a<i>-'0')*pow(16,n-1-i);

else if(a<i>&gt;='A'&&a<i>&lt;='Z')

num+=(10+(a<i>-'A'))*pow(16,n-1-i);

else if(a<i>&gt;='a'&&a<i>&lt;='z')

num+=(10+(a<i>-'a'))*pow(16,n-1-i);

}

printf("转换十进制为:");

printf("%d",num);

}

扩展资料:

gets()的用法:

gets()函数用来从标准输入设备(键盘)读取字符串直到回车结束;但回车符不属于这个字符串。其调用格式为:gets(s);其中s为字符串变量(字符串数组名或字符串指针)。

gets(s)函数与scanf("%s",s)相似,但不完全相同,使用scanf("%s",s)函数输入字符串时存在一个问题,就是如果输入了空格会认为输入字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到回车为止。

示例:

#include&lt;stdio.h&gt;

int main()

{

char s[20];

printf("What's your name?
");

gets(s);

printf("%s
",s);

return 0;

}

当输入a bde回车的时候,会输出a bde。



你还是有编程基础的,我帮你写个思路,你照着编一定能成的。
STR为输入的字符串。
取得STR字符长度=LEN,也就是16的多少次方。
循环:变量i =0到LEN-1
依次计算STR将的每一位,并累加。ASCII值在48-57之间的 减48就是数字;在65-70之间的减55;在97-102之间减87。(ASCII数值不在上述范围的,报错误信息)
再根据所在位乘16的 i 次方。
循环结束。
累加的结果就是十进制了。

你要自己手动转换的函数的话,这个就是你i要的进制转换函数,vc6通过运行调试了
#include<stdio.h>
#include<string.h>
void main()
{
int change(char num[50],int length);
char num[50]="";
int number;
printf("input a number:0x");
gets(num);
number=change(num,strlen(num));
printf("result is:%d",number);
}
int change(char num[50],int length)
{
int j;
int number=0;
for(j=0;j<length;j++)
{
if((*(num+j)>='0')&&(*(num+j)<='9'))
number=number*16+*(num+j)-'0';
if((*(num+j)>='A')&&(*(num+j)<='F'))
number=number*16+*(num+j)-'A'+10;
}
return number;
}


1,从键盘输入一个4位的十六进制数,统计该数所对应的二进制数中所包含...
; 十六进制转换十进制 CONVERT PROC MOV BL,10 MOV CX,0 L:DIV BL ADD AH,30H INC CX PUSH AX MOV AH,0 CMP AL,0 JNZ L O:POP DX MOV DL,DH MOV DH,0 MOV AH,2 INT 21H LOOP O RET CONVERT ENDP ;统计AX中1的个数,结果在BX中,用循环位移实现 COUNT PROC FAR MOV...

一位16进制数可以用几位二进制
一个16进制数可以用四位二进制数。相关知识如下:1、十六进制数字的速率就是二进制数字的速率,也就是说二进制数字连续进位,相当于十进制数字。这个可能很难理解,我们举个例子。比如用二进制表示用十六进制表示F,也就是说一个十六进制数对应四个二进制数F对应。2、二进制是计算技术中广泛使用的一种...

十六进制数字怎么算?
解答过程如图所示:十六进制(简写为hex或下标16)在数学中为一种逢16进1的进位制。一般用数字0到9和字母A到F(或a~f)表示,其中:A~F表示10~15,这些称作十六进制数字。

C语言编程,把16进制数12a以10进制形式输出
include <stdio.h>int main(){int num = 0x12a;\/\/ 如果需要输入一个十六进制数的话,可以把下面这行的注释符号去掉\/\/scanf("%x", &num);printf("%d\\n", num);}\/\/ 这样就好了,利用系统自带的格式控制符就能完成了\/\/ %x 是十六进制 (注意,大写与小写在输出的时候对应十六进制的大写与...

十六进制数是怎么表示的?
16进制以0x开头,后面跟数字0~9或字母A~F(小写也可以),如:0x2D(16进制数2D)1、十六进制(英文名称:Hexadecimal),是计算机中数据的一种表示方法。同我们日常生活中的表示法不一样。它由0-9,A-F组成,字母不区分大小写。2、十六进制与10进制的对应关系是:0-9对应0-9;A-F对应10-15...

写出一个函数,将输入的十六进制数转换成十进制数。要求函数形参用引用...
num*16 + (a+i)-'a'+10;}else if(*(a+i)>='a'&&*(a+i)<='z'){ num = num*16 + (a+i)-'a'+10;}else{ return -1;\/\/表示输入错误的数 } } return num;} void main(){ char a = new char[20];cout<<"请输入一个十六进制数:";cin>>a;int num = htod(a);i...

十六进制的定义 十六进制的转换介绍【详解】-搜狗输入法
十六进制的定义 16进制即逢16进1,其中用A,B,C,D,E,F(字母不区分大小写)这六个字母来分别表示10,11,12,13,14,15。故而有16进制每一位上可以是从小到大为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F16个大小不同的数。十六进制的转换 16进制到十进制 16进制数的第0...

定义一个函数,该函数的功能是将一个十六进制数(字符串形式)转换为对应...
从网上给你找了一个函数,你传参调用就行了 int htoi(char s[]){ int i,n;n=0;for (i=0;s[i]!='\\0';i++){if (s[i]>='0'&& s[i]<='9')n=n*16+s[i]-'0';if (s[i]>='a' && s[i]<='f')n=n*16+s[i]-'a'+10;if (s[i]>='A' && s[i]<='F'...

二进制转十六进制算法(举例)
二进制转十六进制 二进制数要转换为十六进制,就是以4位一段,分别转换为十六进制。从右到左 4位一切 例如 100111110110101 左边不满4位的可以用0补满 0100,1111,1011,01012 进制0000对应16位进制0 0001>>>1 0010>>>2 0011>>>3 0100>>>4 0101>>>5 0110>>>6 0111>>>7 1000>>>8 1001>...

十六进制数怎么算
10进制: 20,21,22,23,24,25,26 ,...16进制: 14,15,16,17,18,19,1A,...十进制以10个数为一组(0~9),然后进一位 十六进制以16个数为一组(0~9,A~F),然后进一位 十进制转换十六进制,用除法,取余数 比如10进制100转换成16进制,100除以16,得6,余4,6再除以16...

腾冲县15363349255: 输入一个十六进制数(字符串输入),输出相应的十进制数. -
锁傅舒尔: 你要自己手动转换的函数的话,这个就是你i要的进制转换函数,vc6通过运行调试了 #include#include void main() { int change(char num[50],int length); char num[50]=""; int number; printf("input a number:0x"); gets(num); number=change(num...

腾冲县15363349255: 输入一个十六进制数(字符串输入),怎么才能够输出相应的十进制数? -
锁傅舒尔: 你还是有编程基础的,我帮你写个思路,你照着编一定能成的.STR为输入的字符串.取得STR字符长度=LEN,也就是16的多少次方.循环:变量i =0到LEN-1 依次计算STR将的每一位,并累加.ASCII值在48-57之间的 减48就是数字;在65-70之间的减55;在97-102之间减87.(ASCII数值不在上述范围的,报错误信息) 再根据所在位乘16的 i 次方.循环结束.累加的结果就是十进制了.

腾冲县15363349255: C语言编写程序如何以字符形式输入一个十六进制数,将其变换成一个十进制整数后输出? -
锁傅舒尔: 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出.注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示.样例输入 FFFF 样例输出65535 思路:感觉自己的下面两个方法都对 方案一:方案二:

腾冲县15363349255: C语言编写程序 ,以字符形式输入一个十六进制数,将其变换成一个十进制整数后输出 -
锁傅舒尔: #include<stdio.h> #include<stdlib.h> #include<string.h> int main(){char c[100];int i,len;long res=0,g=1;printf("请输入一个十六进制数:"); scanf("%s",c);len=strlen(c); for(i=len-1;i>=0;i--,g=g*16)if(c[i]>='a' && c[i]<='f') res+=(c[i]-87)*g...

腾冲县15363349255: C语言:输入一个十六进制字符串,将其转换成为对应的整数并输出转换结果. -
锁傅舒尔: #include void dec2hex(long x) {long t;if(x>15)dec2hex(x/16);t=x%16;if(t else printf("%c",t+55); } int main() { long n;scanf("%ld",&n);dec2hex(n);printf("\n");getch();return 0; }

腾冲县15363349255: 怎么用java语句从键盘上输入一个十六进制数 -
锁傅舒尔: 你输入就是了,接收要按String接收、再Interget.parseInt( num, 16 )转换一下——处理一下异常.

腾冲县15363349255: 写一个函数,输入一个十六进制的数,输出相应的十进制数.用c语言编程. -
锁傅舒尔: 说明trans() 函数 应该返回n (return n ;) int main() { char num[100]; printf("请输入一个十六进制的数:"); scanf("%s" , num); printf("你输入的数转换为十进制 = %d\n" , trans(num)); return 0 ; }

腾冲县15363349255: 写一个函数,输入一个十六进制数,输出相应的十进制数 -
锁傅舒尔: #include<iostream.h> int power(int x,int n); void main() { cout<<"本程序将八位二进制转化成十进制"<<endl;; cout<<"请输入8位二进制数:"<<endl; int i,s=0; char t; for(i=7;i>=0;i--) {cin>>t; if(t=='1') s+=power(16,i); } cout<<"转化成十进制是:...

腾冲县15363349255: 用c语言写一个函数,输入16进制,输出相对应的10进制 -
锁傅舒尔: 1 代码如下: #include<stdio.h> #include<string.h> #include<math.h> #include<ctype.h> #define N 80int char2int(char ch){if (isdigit(ch))return ch - '0';if (isalpha(tolower(ch)))return tolower(ch) - 'a' + 10; } int change(char x[], int n) {int y = 0;for (...

腾冲县15363349255: 计算机C语言
锁傅舒尔: #include "stdio.h" main() {int i; long dec,htod(char d[]); char d[10],loop='y',c; for(;loop=='y'||loop=='Y';) {i=0; while((c=getchar())!='\n') {if(c>='0'&&c<='9'||c>='A'&&c<='F'||c>='a'&&c<='f') {d[i]=c; i++; /* 若输入的字符是十六进制允许的字符,存入d数...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网