汉扬编程 编程大纲 C语言-16进制转10进制

C语言-16进制转10进制

代码一:

#include <stdio.h>

#include <math.h>

#include <string.h>

void convert(char a[]) //十六进制 转 十进制

{

int i,t;

long sum=0;

for(i=0;a[i];i++)

{

if(a[i]>='0'&&a[i]<='9')

// num+=(a[i]-'0')*pow(16,n-1-i);

t=a[i]-'0';

else if(a[i]>='A'&&a[i]<='F')

// num+=(10+(a[i]-'A'))*pow(16,n-1-i);

t=a[i]-'A'+10;

else if(a[i]>='a'&&a[i]<='f')

// num+=(10+(a[i]-'A'))*pow(16,n-1-i);

t=a[i]-'a'+10;

sum=sum*16+t;

}

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

printf("%d",sum);

}

int main( )

{

char a[10];

void convert(char a[]);

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

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

convert(a); //转换数组

return 0;

}

代码二:

#include<stdio.h>

#define N 50

long fun(char *s)

{

int i,t; //t记录临时加的数

long sum =0;

for(i=0;s[i];i++)

{

if(s[i]>='0'&&s[i]<='9')

t=s[i]-'0'; //当字符是0~9时保持原数不变

if(s[i]>='a'&&s[i]<='z')

t=s[i]-'a'+10;

if(s[i]>='A'&&s[i]<='Z')

t=s[i]-'A'+10;

sum=sum*16+t;

}

return sum;

}

int main()

{

int m;

char s[N]; //字符串与字符数组相结合的方式

printf("Enter 16进制数:");

scanf("%s",s); //注意此处%s

m=fun(s);

printf("%d",m);

}

C/C++编程笔记:C语言进制详解,二进制、八进制和十六进制

我们平时使用的数字都是由 0~9 共十个数字组成的,例如 1、9、10、297、952 等,一个数字最多能表示九,如果要表示十、十一、二十九、一百等,就需要多个数字组合起来。

C语言-16进制转10进制

例如表示 5+8 的结果,一个数字不够,只能”进位“,用 13 来表示;这时”进一位“相当于十,”进两位“相当于二十。

C语言-16进制转10进制

因为逢十进一(满十进一),也因为只有 0~9 共十个数字,所以叫做十进制(Decimalism)。十进制是在人类社会发展过程中自然形成的,它符合人们的思维习惯,例如人类有十根手指,也有十根脚趾。

C语言-16进制转10进制

C语言-16进制转10进制

进制也就是进位制。进行加法运算时逢X进一(满X进一),进行减法运算时借一当X,这就是X进制,这种进制也就包含X个数字,基数为X。十进制有 0~9 共10个数字,基数为10,在加减法运算中,逢十进一,借一当十。

C语言-16进制转10进制

二进制我们不妨将思维拓展一下,既然可以用 0~9 共十个数字来表示数值,那么也可以用0、1两个数字来表示数值,这就是二进制(Binary)。例如,数字 0、1、10、111、100、1000001 都是有效的二进制。

C语言-16进制转10进制

在计算机内部,数据都是以二进制的形式存储的,二进制是学习编程必须掌握的基础。本节我们先讲解二进制的概念,下节讲解数据在内存中的存储,让大家学以致用。

C语言-16进制转10进制

二进制加减法和十进制加减法的思想是类似的:

C语言-16进制转10进制

对于十进制,进行加法运算时逢十进一,进行减法运算时借一当十;

对于二进制,进行加法运算时逢二进一,进行减法运算时借一当二。

下面两张示意图详细演示了二进制加减法的运算过程。

1) 二进制加法:1+0=1、1+1=10、11+10=101、111+111=1110

图1:二进制加法示意图

2) 二进制减法:1-0=1、10-1=1、101-11=10、1100-111=101

图2:二进制减法示意图

八进制除了二进制,C语言还会使用到八进制。

八进制有 0~7 共8个数字,基数为8,加法运算时逢八进一,减法运算时借一当八。例如,数字 0、1、5、7、14、733、67001、25430 都是有效的八进制。

下面两张图详细演示了八进制加减法的运算过程。

1) 八进制加法:3+4=7、5+6=13、75+42=137、2427+567=3216

图3:八进制加法示意图

2) 八进制减法:6-4=2、52-27=23、307-141=146、7430-1451=5757

图4:八进制减法示意图

十六进制除了二进制和八进制,十六进制也经常使用,甚至比八进制还要频繁。

十六进制中,用A来表示10,B表示11,C表示12,D表示13,E表示14,F表示15,因此有 0~F 共16个数字,基数为16,加法运算时逢16进1,减法运算时借1当16。例如,数字 0、1、6、9、A、D、F、419、EA32、80A3、BC00 都是有效的十六进制。

注意,十六进制中的字母不区分大小写,ABCDEF 也可以写作 abcdef。

下面两张图详细演示了十六进制加减法的运算过程。

1) 十六进制加法:6+7=D、18+BA=D2、595+792=D27、2F87+F8A=3F11

图5:十六进制加法示意图

2) 十六进制减法:D-3=A、52-2F=23、E07-141=CC6、7CA0-1CB1=5FEF

图5:十六进制减法示意图

自学C/C++编程难度很大,不妨和一些志同道合的小伙伴一起学习成长!

C语言C++编程学习交流圈子,关注+私信【C/C++编程】微信公众号:C语言编程学习基地

有一些源码和资料分享,欢迎转行也学习编程的伙伴,和大家一起交流成长会比自己琢磨更快哦!希望对你有帮助!

本文来自网络,不代表汉扬编程立场,转载请注明出处:http://www.hyzlch.com/mianfei/6295.html

南京航空航天大学举办“雨课堂”智慧教学实践分享会

蓝桥杯经典!C语言编程实例:这么简单的递归别说你不会!

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

返回顶部