满意答案

#include //standard header

#include //needed for power

/*function to convert hexadecimal to decimal*/

int hexToDec(char bin[])

{

char *ptr;//pointer to a char

int value = 0; // the value of the current hex char pointed to

int sum = 0;// the running sum

int power = -1;//power is what base 16 is raised to starts at -1 to count for 0

ptr = bin;//set the pointer to point at start of string ie 0xabcd ptr += 2;//first digit after the 0x ie a

/*use this to work out the length of the hex number so any length

input can be calculated power is the length of the string*/

while(*ptr != (char)NULL)//while pointer is not null count a new char

{

ptr++;

power++;

}

ptr = &bin[2];//sets pointer to point at first value after 0x ie a

while(*ptr != (char)NULL)//while pointer is not equal to null

{

/*this switch statement is used to computer the current value

that the pointer points to using hex alphabet*/

switch(*ptr)

{

case '0': value = 0; break;

case '1': value = 1; break;

case '2': value = 2; break;

case '3': value = 3; break;

case '4': value = 4; break;

case '5': value = 5; break;

case '6': value = 6; break;

case '7': value = 7; break;

case '8': value = 8; break;

case '9': value = 9; break;

case 'a': value = 10; break;

case 'b': value = 11; break;

case 'c': value = 12; break;

case 'd': value = 13; break;

case 'e': value = 14; break;

case 'f': value = 15; break;

default: printf("Input Error not 0-9 or a-f"); exit(1);

}

sum += pow(16.0,power)*value;//this calculates the total until pointer points to null

ptr++;//moves the pointer along to the next char

power--;//decrements the power

}

printf("\nHex: 0x%x, Decimal: %d ", sum, sum);

return sum;

}

void main()

{

char number[10], *p;//allows up to 8 bits of actual data ie 0z or 0x then 8 digits

printf("\nEnter in the number with a preceding 0x if Hex : ");

scanf("%s", &number);//get input

p = number;//point the char pointer to the char array

int buf;

if(*p == '0')//if first char is 0

{

p++;//increment

if(*p == 'x')//if second letter is x its a hex number

hexToDec(number);//so call hexToDec function

else//else its invalid input ie the 0 isnt followed by an x

printf("\nInvalid Format");

}

else//else its invalid input dosnt start with 0 printf("\nInvalid Format");

getch(); }

00分享举报

10 16 进制 转换 c语言,求一段 16进制转10进制 C语言代码。 被转换的16进制数是 0x**型,转换后为10进制数。...相关推荐

  1. c语言求阶乘和的流程图_C/C++编程笔记:C语言 rand() 随机函数,深入解析程序随机数!...

    各种编程语言返回的随机数(确切地说是伪随机数)实际上都是根据递推公式计算的一组数值,当序列足够长,这组数值近似满足均匀分布. C的标准函数库提供一随机数生成器rand(定义在stdlib.h),能返回 ...

  2. c语言求a b 最大公约数和最小公倍数,常见算法:C语言求最小公倍数和最大公约数三种算法...

    最小公倍数:数论中的一种概念,两个整数公有的倍数成为他们的公倍数,当中一个最小的公倍数是他们的最小公倍数,相同地,若干个整数公有的倍数中最小的正整数称为它们的最小公倍数,维基百科:定义点击打开链接 求 ...

  3. c语言 求2到100的素数,2是素数吗(c语言输出100以内素数)

    2是质数吗? 除了1和本身外,不能被其他任何自然数整数的自然数.又叫做素数,最小的素数是2,也是唯一的偶质数 100以内的质数共有25个,这些质数我们经常用到,可以用下面的. 1不是素数,最小的质数是 ...

  4. c语言求行列式的值原理,新手作品:行列式计算C语言版

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 对话     ControlHeightDecrease     Shift+Up Arrow     向上调整选定的控件或对话一个对话单位 对话     ...

  5. c语言求利润的编程,[编程入门]利润计算-题解(C语言代码)

    ```c #include int jiangjin_1(int);//利润 <= 100000 int jiangjin_2(int);//利润 > 100000 && ...

  6. C语言求一棵二叉树所有根到叶的路径(附完整源码)

    C语言求一棵二叉树所有根到叶的路径 C语言求一棵二叉树所有根到叶的路径完整源码(定义,实现,main函数测试) C语言求一棵二叉树所有根到叶的路径完整源码(定义,实现,main函数测试) #inclu ...

  7. 一元二次方程虚根求法java_请问怎么用C语言求一元二次方程的虚根

    请问怎么用C语言求一元二次方程的虚根 请问怎么用C语言求一元二次方程的虚根 搜索更多相关的解决方案: C语言  一元二次方程 ----------------解决方案----------------- ...

  8. Oracle优化器:星型转换

    Oracle 8i中引入了星型转换(star transformation)的优化器新特性以便更有效地处理星型查询.星型查询语句多用于基于星型模型设计的数据仓库应用中.星型模型的称谓源于该种模型以图形 ...

  9. c语言求比平均值大的元素,c语言 10个元素的数组求平均值并输出比平均值大的数...

    [c语言]编写程序,求数组a中前n个元素的最大值max.最小值min及平均值avg. 是前n个元素么?main(){inti=n,sum=0;max=a[0];min=a[0];for(i=0;ia[ ...

  10. C语言 定义函数妇女 判定整数n,【详解】C语言:编写一个函数itob(int n,char s[], int b),将整数n转换为以b进制的数。保存到s中。...

    #include void itob(int n,char s[], int b) { int i=1; for(;i<=32;i++)    //共循环了32次,保证得到32位的二进制数 { ...

最新文章

  1. android wi-fi_如何在Android手机上查找3G或Wi-Fi速度
  2. mysql备份到带库_RMAN备份恢复——备份到带库的性能
  3. windows终止进程——taskkill
  4. 不确定性原理的前世今生 · 数学篇(一)
  5. Win软件 - Listary
  6. Windows如何查看.db数据库文件
  7. 关于帧差法的想法(opencv)
  8. 山东大学软件学院计算机组成原理2021-2022期末考试回忆版
  9. 巴塞尔协议1、2、3内容总结(转)
  10. 计算机考研对英语四六级有要求吗,2022考研指南|考研对英语四六级有要求吗?...
  11. ctf之7z文件爆破
  12. 元图地图开放平台系统概述
  13. 学习C C++的必备技能(1)
  14. wildcard函数
  15. 04 ElasticSearch分词及高阶搜索
  16. 干货 :六招教你用Python分分钟构建好玩的深度学习应用
  17. 利用SQL语句创建、修改、删除、查看与使用数据库
  18. 主板aspm关闭_华硕主板BIOS关闭secure boot和fastboot图解
  19. thinkphp5 注入 反序列化写文件 phar反序列化
  20. MUR560D-ASEMI快恢复二极管MUR560D

热门文章

  1. 通过虚拟机安装Ubuntu系统到移动硬盘
  2. 密码学之前后向安全性
  3. 【1】Kali破解家用WI-FI密码 - WEP加密
  4. 逆向PPTV视频真实播放地址全过程(Java版)
  5. java随机不重复点名_怎样用java做一个点名器,除重复,并且用键盘输入
  6. 43岁,转行当了大学老师
  7. 爱和感恩2021年末记
  8. 泊松分布以及相关分布的知识整理
  9. QT报错 error: [debug/qrc_image.cpp] Error 1
  10. 学妹跑过来问我为啥Xshell 打不开了,让我帮她处理下【手把手讲解】