单片机C语言中16进制数转10进制数的计算公式?比如a=0x7f,用一个公式怎么转化为10进制数

我的方式是这样的:b=(a/10)*16+a%10 这样好像不行,哪位能否解答?

用C语言写程序,也不用转换的。C语言就可以直接写十进制数的,内部是什么可以不用考虑。
只是在显示时,按十进制数显示时,取出百,十,个位就行了,也不用先转换的。
你这样好像是转换了,可转换后的数,在内部还是十六进制数,那当然是错的。
所以,要根据需要进行分离或者转换。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-10-24
你的办法不行。
准确地说,要把单元里的二进数整转换成“十进制字符串”?
有现成的转换函数,
第2个回答  2011-10-24
b=(a/16)*16+a%16本回答被提问者采纳
第3个回答  2011-10-24
b=(a/16)*16+a%16 可以的

单片机C语言中16进制数转10进制数的计算公式?比如a=0x7f,用一个公式...
用C语言写程序,也不用转换的。C语言就可以直接写十进制数的,内部是什么可以不用考虑。只是在显示时,按十进制数显示时,取出百,十,个位就行了,也不用先转换的。你这样好像是转换了,可转换后的数,在内部还是十六进制数,那当然是错的。所以,要根据需要进行分离或者转换。

单片机C语言 十六进制转换为十进制
8位的十六进制数temp(0~255)百位 bai=temp\/100;temp=temp%100;\/\/取余数 shi=temp\/10;ge=temp%10;16位的也是一样,只是先除以10000

单片机 如何将十六位转成十进制显示在LED上
16进制数0x10;化成10进制就是16;然后把16%10 的到的余数是6 放在个位数,16\/10得到十位数1~~然后可以相应的查表输出~~~

如何把16进制数转化为10进制,c语言编写
16进制数转10进制数原理:某16进制数共n位,第n位表示为Xn。转换后的10进制数表示为Y。Y = Xn×16^0 + Xn-1×16^1 + Xn-2×16^2 + …… + X1×16^n-1。include <stdio.h>#include <math.h>#include <string.h>\/* 任意进制数转十进制数 *\/\/* char *value : 其他进制数 *\/...

c语言中十六进制怎么转换成十进制
转换后的10进制数表示为Y *\/\/* Y = Xn*R^0 + Xn-1*R^1 + Xn-2*R^2 + …… + X1*R^n-1 *\/void others2Decimal (char *value, int *result, int radix) { int digit,i,j;*result = 0;for (i=strlen(value)-1,j=0; i>=0; i--,j++) {if (value[i]>='0' &&...

关于c语言编程,16进制表示的字符串转成10进制的
if(t<=9) k=k*16+s[i]-'0' \/\/如果t≤9,说明原字符为'0'~'9',转换后直接得到对应数字0~9,因此直接将这个数字转换为十进制即可:k=k*16+s[i]-'0'即将当前位转换为十进制 else k=k*16+s[i]-'A'+10 \/\/如果t>9,说明原字符为'A'~'F',转换后不能得到对应数字,必须通过...

c语言16进制转换为10进制数的函数、
1、可以根据16进制转10进制的算法(即各位位码值乘以位权之和)来实现该功能。2、具体实现方法可以参考如下程序:include <stdio.h>void main(){ int he; int re=0; \/\/ 保存转换为10进制的结果 int k=16; \/\/ 16进制 int n=1; \/\/ 位权 scanf("%d", &he); ...

c语言中16进制转换为十进制
最简单的使用scanf()函数和printf()函数进行格式转换,以16进制格式输入,再以10进制格式输出。 程序代码如下: #include<stdio.h> int main() { int a=0; int i=0; scanf("%x",&a); printf("%d",a); return 0; } 运行结果: 扩展资料: scanf函数与printf函数的用法很像,都是以格式化的形式...

关于C语言16进制转换为10进制的问题
length是输入的有效长度,转换运算应该是从最高位到最低位,才能用那些转换公式,下面解释一下公式的含义:n=n*16+s[i]-'0'...(1)n=n*16+s[i]-'a'+10; ...(2)两个公式中s[i]-'0'和s[i]-'a'+10都是为了将字符转换成对应的数值,因为输入的是字符型,例如字符‘2’,因为它的...

c语言16进制与10进制的转换
num = num*16 + *(a+i)-'0'; else if(*(a+i)>='A'&&*(a+i)<='Z')\/\/如果当前位是大写字母A~Z,转换成10进制数值,再累加 num = num*16 + *(a+i)-'A'+10; else if(*(a+i)>='a'&&*(a+i)<='

相似回答