写一个函数,输入一个十六进制数,输出相应的十进制数

c语言16进制字母对应,一个函数输入一个十六进制输出相应十进制数(附C程序 和 更加简单的实现方法)... 一个函数输入一个十六进制输出相应十进制数。基本思路是16进制以字符串输入,然后经过转变为相应的10进制,主要处理A~F六个字母对应的值,相应的程序如下:#include#include#includeint main( ){char a[10];void convert(char a[]);printf("请输入十六进制:");gets(a); //输入十六进制convert(a... 阅读详情

写一个函数,输入一个十六进制数,输出相应的十进制数(C语言)

题目要求:如标题

思路:

  1. 十六进制数为:0,1,2,3,4,5,6,7,8,9,A(10),B(11),C(12),D(13),E(14),F(15)
  2. 比如0xFF=1516ˆ1+1516ˆ0=255,0xAB=1016ˆ1+1116ˆ0=171
  3. 设定length=strlen(str)-1,term为每一项的值。同时设定i,令i=0;i<=length;i++
  4. a为相应的十六进制数转为十进制数的乘数,即(0~15)
  5. 此时需要用到pow函数,则term=a*pow(16,length-i),最后把term叠加即可

以下是具体代码:

#include <stdio.h>
#include <string.h>
#include <math.h>
int main()
{
    void hexadecimal_decimal(char str[]);
    char string[1000];
    printf("please enter a hexadecimal number: ");
    gets(string);
    hexadecimal_decimal(string);
    return 0;
}


void hexadecimal_decimal(char str[])
{
    int length;
    length=strlen(str)-1;
    int sum=0;
    int term;
    int i;
    int a;
    for(i=0;i<=length;i++)
    {
        if(str[i]>='0' && str[i]<='9')
            a=str[i]-'0';
        else if(str[i]>='A' && str[i]<='F')
            a=10+(str[i]-'A');
        else if(str[i]>='a' && str[i]<='f')
            a=10+(str[i]-'a');
        term=a*pow(16,length-i);
        sum=sum+term;
    }
    printf("The decimal number is: %d\n",sum);
}
函数,输入一个十六进制,输出相应十进制数 阅读详情

相关推荐

c++作业题---编一个函数输入一个十六进制,便输出相应十进制数

一个编程常见的作业题

C语言——一个函数输入一个十六进制输出相应十进制数

新人小白一个 用的是vs2019编译器 scanf_s==scanf哦 求三连啊~~~ (。・ω・。)ノ♡ #include <stdio.h> #include <string.h> #include <math.h> void abb(char arr[]) { int i, j = 0, k; k = strlen(arr); for (i = k - 1; i >= 0; i--) { if (arr[i] >= '0' &.

m0_64817863的博客 3786

(20)一个函数输入一个十六进制输出相应十进制数

一个函数输入一个十六进制输出相应十进制数 程序分析:若不对输出字符串中的元素进行处理,则输出的是该元素的ASCI码。在十六进制中分别用A,B,C,D,E,F代表字10,11,12,13,14,15.经查ASCI字符代码表,发现可用字母的ASCI减去字符’7’的ASCI码就可以得到每个字母代表的字。 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<math.h> #include<stdlib.h

yuyuzhang1的博客 4192

一个函数输入一个十六进制输出相应十进制数——C语言

1 概述 一个函数输入一个十六进制输出相应十进制数 2 解法 //C程序设计第五版(谭浩强) //章节:第七章 用函数实现模块化程序设计 //练习7.16 一个函数输入一个十六进制输出相应十进制数 #include <stdio.h> #include <math.h> #include <string.h> int main( ) { ...

我是张跑跑 1万+

(c语言一个函数输入一个十六进制输出相应十进制数

正在学C语言,教材是谭浩强教授的《c程序设计》第五版,本题是上次课后作业(p216 7-16题),一开始感觉无从下手,认真思考和复习各进制的转换知识后终于做出了这道题,和网上的一些答案还是有差别&amp;差距的,仅供参考~/*解题思路:声明字符串组arr储存输入十六进制并将其作为子函数实参,在子函数中使用循环将 arr各位转换为对应的十进制数并使用一个整型组存储,然后各位求乘积再求和得...

清水三千的博客 3万+

一个函数输入一个十六进制输出相应十进制数(附C程序 和 更加简单的实现方法)

一个函数输入一个十六进制输出相应十进制数。基本思路是16进制以字符串输入,然后经过转变为相应的10进制,主要处理A~F六个字母对应的值,相应的程序如下: #include <stdio.h> #include <math.h> #include <string.h> int main( ) { char a[10]; void conver...

deniece1的博客 2万+

一个函数 输入一个十六进制输出相应十进制数

C语言一个函数输入一个十六进制输出相应十进制数。 #include #define MAX 1000 int main() { int htoi(char s[]); int c,i,flag,flag1; char t[MAX]; i=0; flag=0; flag1=1; printf("input a HEX number:"); while((c=

Xing___wei的博客 9067

一个函数输入一个十六进制输出相应十进制数

【描述】 一个函数输入一个十六进制输出相应十进制数。 【输入输出示例】 a5 165 【C语言】 #include void convert(int n){ printf("%d",n); } int main() { int num; scanf("%x",&num); convert(num); return 0; }

SO WHAT? 5950

C语言一个函数输入一个十六进制输出相应十进制数

在每次循环中,我们首先检查当前字符是否在 '0' - '9' 的范围内,如果是,则表示该字符是一个字。如果当前字符不是字,则继续检查它是否在 'A' - 'F' 或 'a' - 'f' 的范围内。如果当前字符既不是字也不是字母,则说明输入的字符串不是一个有效的十六进制。在函数 xbed 中,我们定义了两个变量 i 和 sum,其中 i 用于循环遍历输入十六进制,sum 用于存储最终的十进制值。接下来,程序调用了名为 xbed 的函数,并将用户输入十六进制作为参传递给该函数

m0_63002183的博客 7408

C //习题 7.16 一个函数输入一个十六进制输出相应十进制数

【代码】C //习题 7.16 一个函数输入一个十六进制输出相应十进制数

Made in Code 2万+

一个函数输入一个十六进制输出相应十进制数。-----(自己编程)

一个函数输入一个十六进制输出相应十进制数。基本思路是16进制以字符串输入,然后经过转变为相应的10进制相应的程序如下: #include <stdio.h> #include <math.h> #include <string.h> int main( ) { char a[10]; void convert(char a[]); ...

wanrxpjing的博客 3万+

一个函数输入一个十六进制相应输出十进制数

#include<stdio.h> #include<string.h> #include<math.h> int main() { void hexadecimal(char string[100]); char c,number[100]; printf("输入一个十六进制相应输出十进制数\n\n"); int i; flag: label: printf("请输入一个16进制的(输入字符只能含有0 1 2 3 4 5 6 7 8 9 A B .

USTC小璇风的博客 1632

习题7.16 一个函数输入一个十六进制输出相应十进制数

#include <stdio.h> #include <string.h> #include <math.h> int main() { char str[16]; void fun(char x[]); printf("请输入一个十六进制:"); gets(str); printf("\n"); fun(str); return 0; } void fun(char x[]) { long int

ajwx_1127的博客 1436
上一篇: 用牛顿迭代法求方程的根
下一篇: 用递归法将一个整数n转换成字符串
Bin682
博客等级 码龄6年 81粉丝 44原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值