⑴ c语言中将0123转换成十进制数是
#include<stdio.h>
int main()
{
int a=0123;
printf("%d",a);
}
前面加0的数是八进制数
%d输出的是十进制数
所以这样就可以了.
⑵ C语言如何将一个数字组成的字符串转变成十进制数
办法很多,提供三种供参考。
一、直接使用库函数atoi将数字字符串转换成十进制整数。代码如下:
#include"stdio.h"
#include"stdlib.h"//调用库函数atoi要包含这个文件
intmain(intargc,char*argv[]){
chara[]="478167831";
printf("%d ",atoi(a));//直接调用atoi将a转换为十进制整数
return0;
}
二、用库函数sscanf直接将数组中的数字字符串读入十进制整型变量。代码如下:
#include"stdio.h"
intmain(intargc,char*argv[]){
chara[]="478167831";
intx;
sscanf(a,"%d",&x);//调用sscanf,读入时自动转换为int型并由%d控制以十进制赋给变量x
printf("%d ",x);//输出
return0;
}
三、自行编写转换代码:
#include"stdio.h"
intmain(intargc,char*argv[]){
chara[]="478167831";
intx,i;
for(x=i=0;a[i];(x*=10)+=a[i++]-'0');//字符与数字的关系是"字符值-'0'==同名数字"
printf("%d ",x);//输出
return0;
}
上述三代码的输出结果如下图:
⑶ C语言如何实现十六进制转换成十进制
C语言实现十六进制转换成十进制如下:
例如将十六进制数字 9FA8C 转换成十进制:
9FA8C = 9×164 + 15×163 + 10×162 + 8×161 + 12×160 = 653964(十进制)。
从右往左看,第1位的位权为 160=1,第2位的位权为 161=16,第3位的位权为 162=256,第4位的位权为 163=4096,第5位的位权为 164=65536 …… 第n位的位权就为 16n-1。
将各个位的数字乘以位权,然后再相加,就得到了十进制形式。
十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方。
所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。
再例如:十六进制:EA7 = 14×162 + 10×161 + 7×160 = 3751(十进制)。
(3)c语言中013转为10进制扩展阅读:
C语言10进制转16进制
把十进制的数不停除以16的余数按从右到左的顺序排起来就是16进制,例如:55/16=0余5例如100 100/16=6余4 6/16余6,所以就是64,再例如1000 1000/16=62余8 62/16=3余12 3/16余3所以结果是3C8 //。
对于整数部分,用被除数反复除以2,除第一次外,每次除以2均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。
对于小数部分,采用连续乘以基数2,并依次取出的整数部分,直至结果的小数部分为0为止。
⑷ c语言中,将字符转换为十进制的程序
字符转为10进制 用sscanf或者用atoi均可
以字符串中, 本身为10进制字符串为例
用sscanf程序如下:
#include<stdio.h>
intmain()
{
chars[20];
inti;
scanf("%s",s);
sscanf(s,"%d",&i);
printf("%d ",i);
return0;
}
⑸ 在C语言中,如何用数组来实现2进制转换为10进制
问题不是很清楚,是一个'1' 和‘0’ 的char[] 作为input,然后一个int 作为结果的话,可以这样写:
比如进来时“10100010001”这样一个用char[] 表示的string的话
int convert(char * arg)
{
int result = 0;
//先找长度
int length = strlen(arg);
//用pos来找正确的bit position, 因为 index 0 对应的是bit pos, 1 对应 pos -1, etc
int pos = length - 1;
for (int i = 0; i<length; i++)
{
result + = (int)(arg[i] - '0')<<(pos - i);
}
return result;
}
如果想程序跑的快点可以加一个 #pragma omp parallel for (+:result) firstprivate(i) 在for循环前面一行, 当然如果题主不需要就当没看到这个啦, xD
希望解答了你的问题
⑹ c语言中如何将16进制字符串转化成10进制整数
1、输入字符串
3、反转字符串,并赋给字符串数组A
2、循环检测数组A,依次检测1每个字符
5、判断当前检测的字符,如果属于ABCDEF,则依次把ABCDEF
转换为11....16,否则不做任何操作
6、累加,当前循环次数的16次方乘以当前字符的数值大小。
7、输出总累加值就是10进制整数
⑺ 问一个C语言中的换算问题
0x开头表示,该数据是16进制数据。16进制转化为10进制的方法如下:
例1.把0x13转化为10进制。
3*(16的0次方)+1*(16的1次方)= 3*1+1*16 = 19
例2.0x1234转为为10进制。
4*(16的0次方)+3*(16的1次方)+2*(16的2次方)+1*(16的3次方)= 4660
其它转化依此类推,记住,就是对应的位i乘以16的i-1次方相加即可!
⑻ 如何用C语言将一个十六进制数字转换为十进制
需要准备的材料分别有:电脑、C语言编译器。
1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。