当前位置:首页 » 编程语言 » c语言实现十进制
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言实现十进制

发布时间: 2022-10-21 01:08:25

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(十进制)。



(1)c语言实现十进制扩展阅读:

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语言编写二进制转换为十进制的程序

将二进制转成十进制,按权值展开求和即可。

可以通过以下代码解决:

#include <stdio.h>

#include <stdlib.h>

int main()

{

char a[17];

gets(a);

int len,i,sum=0,m,j;

len=strlen(a);

if(len<=16)

{

for(i=0;i<len;i++)

{

m=1;

if(a[i]=='1')

{

for(j=1;j<=len-i-1;j++)

m*=2;

sum+=m;

}

}

printf("%d",sum);

}

return 0;

}

(2)c语言实现十进制扩展阅读

我们常用的进制包括:二进制、八进制、十进制与十六进制,它们之间区别在于数运算时是逢几进一位。比如二进制是逢2进一位,十进制也就是我们常用的0-9是逢10进一位。

十进制转二进制:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。

八进制转二进制:八进制数通过除2取余法,得到二进制数,对每个八进制为3个二进制,不足时在最左边补零。

十六进制转二进制:十六进制数通过除2取余法,得到二进制数,对每个十六进制为4个二进制,不足时在最左边补零。

负数的进制转换稍微有些不同。

先把负数写为其补码形式(在此不议),然后再根据二进制转换其它进制的方法进行。

例:要求把-9转换为八进制形式。则有:

-9的补码为1111 1111 1111 0111。从后往前三位一划,不足三位的加0

111---->7

110---->6

111---->7

111---->7

111---->7

001---->1

然后我们将结果按从下往上的顺序书写就是:177767,那么177767就是十进制数-9的八进制形式。

其实转化成任意进制都是一样的。

③ 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语言编写二进制转换十进制的程序。

1、为了完成进制的转换,在主函数中声明了个函数Sum,主要用于将二进制的每一位转换为十进制后的数相加,返回值就是相加后的和。另外定义了一个数组array[8],用于存放输入的八位二进制数。

⑤ 如何用C语言将一个十六进制数字转换为十进制

需要准备的材料分别有:电脑、C语言编译器。

1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。

⑥ c语言十进制转换

十进制的任意转换
#include
#include
int
main()
{
int
a,b,c,n
=
0,m[40];
printf("请输入你想算得数
=__\b\b");
scanf
("%d",&a);
printf("
请输入你想算的进制
=__\b\b");
scanf
("%d",&b);
while
(a
!=
0)
{
n
++
;
c
=
a
%
b;
m[n]
=
c;
a
=
a
/
b;
}
for
(a
=
n;
a
>=
1;a--)
printf
("%d",m[a]);
return
0;
}

⑦ 用C语言编程实现10进制数值转16进制字符串

根据10
进制
转换为16进制的
规则
,编写
C语言程序
将10进制数转换为16进制数。
具体实现方法可参考如下程序:
#include<stdio.h>void
main(){
int
i,
x;
//
x表示欲转换的10进制数
int
data[10],
index=0;
//
data数组存放转换后的16进制数,index表示
下标
scanf("%d",
&x);
//
接受欲转换的10进制数
for(i=0;
i<10;
i++)
//
对数组data进行初始赋值操作
data[i]
=
0;
printf("%d对应的16进制为:",
x);
//
反复相除取余,并将
余数
存放在data数组中
while(x>0)
{
data[index]
=
x%16;
x
=
x/16;
index++;
}
//
逆序输出data数组中的元素,即为10进制数对应的16进制数
for(i=index-1;
i>=0;
i--)
printf("%d",
data[i]);
printf("\n");
}

⑧ C语言用1个10进制数表示字符串,并输出该值怎么做

要把一个十进制形式的整数数字字符串,转换为一个十进制整数,可以用以下的办法:
char s[]="12345678";
int i,n=0;
for(i=0;s[i];i++)
n=n*10+s[i]-'0';
printf("%d",n);
运行这段代码后可以输出:
12345678