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

c语言十进制整数转化为八进制和十六进制

发布时间: 2023-02-10 11:29:16

‘壹’ 用c语言编程实现十进制选择转换为二进制八进制和十六进制

#include
#include
#include
/*该函数可以实现小于整型数据的任意进制之间转换*/
/*以下函数将a进制数s转换成b进制并输出*/
void f(int a,int b,char s[])
{ char r[17];
int i,n,t,k;
for(n=strlen(s)-1,i=t=0;*(s+i)!='\0';i++,n--) /*这里先转换成十进制数*/
{ if(*(s+i)<='9')
t+=(*(s+i)-'0')*int(pow(a,n));
else
t+=(*(s+i)-'A'+10)*int(pow(a,n));
}
for(i=0;t!=0;i++) /*再转换成b进制*/
{ k=t%b;
if(k>9)r[i]='A'+k-10;
else r[i]='0'+k;
t/=b;
}
r[i]='\0';
s=strrev(r);
printf("%s",s);
}

‘贰’ C语言讲一个十进制数转化为二,八,十六进制(函数调用

itoa()函数可以实现,根据itoa()第三个参数(2/8/10)可以进行二、八、十六进制的转换,转换后为字符串,如要求是int,可以用atoi实现字符串与int之间的转换
举例:
#include
"stdio.h"
#include
"stdlib.h"
int
main()
{
int
L1;
printf("输入数字\n");
scanf("%d",
&L1);
char
str1[256];
char
str2[256];
char
str3[256];
itoa(L1,
str1,
2);
itoa(L1,
str2,
8);
itoa(L1,
str3,
16);
printf("2进制:%s\n8进制:%s\n16进制:%s\n",str1,str2,str3);
return
0;
}

‘叁’ 请问用C语言编写一个十进制转换成二进制或八进制或十六进制的程序需要怎么打

#include<stdio.h>

voidmain()

{

//进制转换函数的声明

inttransfer(intx);

intx;

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

scanf("%d",&x);

printf("转换成二进制数是:%d ",transfer(x));

}

inttransfer(intx)

{

intp=1,y=0,yushu;

while(1)

{

yushu=x%2;

x/=2;

y+=yushu*p;

p*=10;

if(x<2)

{

y+=x*p;

break;

}

}

returny;

}

(3)c语言十进制整数转化为八进制和十六进制扩展阅读

C语言:整数转换十六进制数和八进制

#include<stdio.h>

voidmain()

{

inti;

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

scanf("%d",&i);

printf("这个数转换为十六进制数:%x ",i);

printf("这个数转换为八进制数:%o ",i);

getch();

return0;

}

‘肆’ C语言十进制如何转八进制个十六进制,

printf函数
%o可输出无符号八进制整数。
%x可输出无符号十六进制整数。

满意请采纳!

‘伍’ C语言,十进制转换成八进制和十六进制输出

//十进制转二进制
#include <stdio.h>
void trans(int x)
{
int a[30];
int i=0,rem;
do{
rem=x%2;x=x/2;
a[i]=rem;
i++;
}while(x!=0);
while(i>0)
printf("%d",a[--i]);
printf("\n")
}
void main()
{
int d;
printf("请输入一个十进制的正整数:\n");
do scanf("%d",&d);while(d<0);
trans(d);
}

//十进制转八进制
#include "stdio.h"
#include "math.h"
main()
{
int i,n=0,o=0,j=0;
scanf("%d",&i); /*改成*/
if(i<=7)
o=i;
else
{
while(i>7)
{ /*加括号*/
j=i%8;
i=i/8;
o=j*pow(10,n)+o;
n++;
} /*加括号*/
}
o=o+i*pow(10,n);
printf("o=%d\n",o);
}

//十进制转十六进制
#include<stdio.h>
char tohex(int n)
{

if(n>=10 && n<=15)
{
return 'A'+n-10;
}
return '0'+n;
}
void dec2hex(int n,char *buf)
{
int i=0;
int mod;
while(n)
{
mod = n%16;
buf[i++]=tohex(mod);
n=n/16;
}
//得进行反序。
int j,k;
for(j=0,k=i-1;j<i/2;j++,k--)
{
char temp;
temp = buf[j];
buf[j] = buf[k];
buf[k] = temp;
}
buf[i]='\0';
}

int main()
{
int n;
scanf("%d",&n);
char a[32];
dec2hex(n,a);
printf("%s",a);
return 0;
}

‘陆’ c语言十进制怎么转换八和十六(求过程)

先10转2 再转8,16进制。8,16转2再转10进制。
比如:
八进制:63 ->二进制:110(6) 011(3) -> 十进制:32+16+2+1 = 51
十六进制:A5 ->二进制:1010(A) 0101(5) -> 十进制:128+32+4+1 = 165

十进制 19 ->二进制 1 0011 -> 八进制: (010 011) = 23
-> 十进制:(0001 0011) = 13

通过二进制之后 会简单多了,希望对你有帮助。

‘柒’ 十进制123在c语言中用八进制和十六进制怎么表示

十进制123在c语言中用八进制表示为173,用十六进制表示为7B。

十进制整数转换为其他进制整数采用"除进制数取余,逆序排列"法。用进制数去除十进制整数,可以得到一个商和余数;再用进制数去除商,如此进行,直到商为零时为止,然后把先得到的余数作为其他进制数的低位有效位,后得到的余数作为其他进制数的高位有效位,依次排列起来。

即十进制123=1*8^2+7*8^1+3*8^0=八进制173=7*16^1+11*16^0=十六进制7B。

(7)c语言十进制整数转化为八进制和十六进制扩展阅读:

八进制广泛应用于计算机系统,如PDP-8,ICL 1900和IBM大型机使用12位、24位或36位。八进制是这些基础,因为他们的最理想的二进制字缩写大小能被3整除(每个八进制数字代表三个二进制数字)。四、八到十二个数字可以简明地显示整个机器。

它也降低成本使得数字允许通过数码管,七段显示器,和计算器用于操作员控制台,他们在二进制显示使用过于复杂,然而十进制显示需要复杂的硬件,十六进制显示需要显示更多的数字。

‘捌’ 【c语言】输入一个十进制数,转换成对应的八进制数和十六进制数并输出

#include<stdio.h>
voiddec2n(intx,intn)
{inta[33],i;
for(i=0;x;x/=n)a[i++]=x%n;
for(i--;i>=0;i--)
if(a[i]<10)printf("%d",a[i]);
elseprintf("%c",a[i]+55);
printf(" ");
}
intmain()
{intx;
scanf("%d",&x);
printf("%d的八进制:",x);dec2n(x,8);
printf("%d的十六进制:",x);dec2n(x,16);
return0;
}

‘玖’ C语言编程,输入十进制数输出十六进制和八进制

可以通过下面的公式解决

#include<stdio.h>

const int maxn = 128;

const int index8 = 8;

const int index16 =16;

int main()

{int Array8[maxn];

int Array16[maxn];

int n, cot8 = 0;

scanf("%d", &n);

int m = n, cot16 = 0;

while(n) {Array8[cot8++] = n % index8;

n /= index8;}

while(m) {Array16[cot16++] = m % index16;

m /= index16;}

int i;

for(i = cot8 - 1; i >= 0; i--)

printf("%d", Array8[i]);

puts("");

for(i = cot16 - 1; i >= 0; i--)

(9)c语言十进制整数转化为八进制和十六进制扩展阅读:

十进制转十六进制的具体方法:

对于整数部分,用被除数反复除以16,除第一次外,每次除以16均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。

对于小数部分,采用连续乘以基数16,并依次取出的整数部分,直至结果的小数部分为0为止。故该法称“乘基取整法”。

10进制数转换成十六进制数,这是一个连续除以16的过程:把要转换的数,除以16,得到商和余数,将商继续除以16,直到商为0。最后将所有余数倒序排列,得到数就是转换结果。

‘拾’ C语言编程,输入十进制数输出十六进制和八进制

可以通过下面的公式解决

#include<stdio.h>

const int maxn = 128;

const int index8 = 8;

const int index16 =16;

int main()

{int Array8[maxn];

int Array16[maxn];

int n, cot8 = 0;

scanf("%d", &n);

int m = n, cot16 = 0;

while(n) {Array8[cot8++] = n % index8;

n /= index8;}

while(m) {Array16[cot16++] = m % index16;

m /= index16;}

int i;

for(i = cot8 - 1; i >= 0; i--)

printf("%d", Array8[i]);

puts("");

for(i = cot16 - 1; i >= 0; i--)

(10)c语言十进制整数转化为八进制和十六进制扩展阅读:

十进制转十六进制的具体方法:

对于整数部分,用被除数反复除以16,除第一次外,每次除以16均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。

对于小数部分,采用连续乘以基数16,并依次取出的整数部分,直至结果的小数部分为0为止。故该法称“乘基取整法”。

10进制数转换成十六进制数,这是一个连续除以16的过程:把要转换的数,除以16,得到商和余数,将商继续除以16,直到商为0。最后将所有余数倒序排列,得到数就是转换结果。