十进制转八进制c语言(C语言的十进制数转换八进制算法有哪些)

本文目录
- C语言的十进制数转换八进制算法有哪些
- C语言十进制怎么转换八进制,求详细描述,不要编译器运行的结果
- C语言十进制转八进制
- 用C语言进行十进制和八进制的转换怎么做
- 如何用c语言实现十进制数与八进制数的互换
- C语言程序十进制的数怎么转换成八进制的数
- C语言程序十进制的数转换成八进制的数
- C语言程序怎么把十进制的数转换成八进制的数
C语言的十进制数转换八进制算法有哪些
原发布者:血战长空wlg
题目:数制转换问题1.需求分析将十进制数N转换成八进制数是计算机实现计算的基本问题,解决方案很多,其中最简单的方法是除8取余法。1)本方案采用顺序栈的方式模拟整个过程。其原理如下:例子:(1348)10=(2504)8NNdiv8Nmod8134816841682102125202从中可以看出,最先产生的余数4是转换加过的最低位,这正好符合栈的“后进先出”的特性。2)功能:从键盘输入任意一个非负十进制整数,输出与其等值的八进制数;若输入一个负数,则显示输入错误,请重新输入。3)测试数据:(1348)10=(2504)8,(0)10=(0)8,(-1234)10输入数据错误。2.概要设计定义顺序栈类型,由键盘输入非负十进制整数N,执行以下循环操作:N%8入栈,N=N/8,直至N=0。主要函数由建立空栈Initsqstack()、入栈Push()、出栈Pop()和main()函数组成。过程中函数调用关系图如下:3.详细设计1)数据类型定义structSqstack{int*bottom;int*top;intmaxsize;};2)系统主要子程序详细设计A.建立空栈intInitsqstack(Sqstack&s){s.bottom=(int*)malloc(sizeof(int)*20);if(s.bottom){s.top=s.bottom;
C语言十进制怎么转换八进制,求详细描述,不要编译器运行的结果
十进制转任意进制一般都是用除基取余法,比如说102转8进制,
102除以8,商12,余6
12除以8,商1,余4
1除以8,商0,余1
商为0的时候即转换完成,将余数逆序连接起来就是结果,即10进制的102转8进制为146
将上述过程转为代码就是
#include 《stdio.h》
int main()
{
int number = 102, i=0, div, rem;
int system = 8;//8进制
char s;
while (number) //除基取余法
{
div = number / system; //商
rem = number % system; //余
s[i++] = rem 《= 9 ? rem + ’0’ : rem - 10 + ’A’;
number = div; //上次的商赋给number
}
for (--i; i 》= 0; i--)
printf(“%c“, s[i]);
printf(“\n“);
getchar();
return 0;
}
C语言十进制转八进制
现在我一共给你三个答案:
1递归的,
2你原先改成的,
3一般的
**********************************************************************
/*如你所愿写个递归的*/
#include《stdio.h》
r8(int a)
{
int i,j;
if(a==0)
return (0);
else
{
j=a%8;
i=a/8;
r8(i);
printf(“%d“,j);
}
}
int main()
{
int n;
printf(“请输入十进制数:“);
scanf(“%d“,&n);
printf(“转换成八进制数是:“);
r8(n);
printf(“\n“);
}
**********************************************************************
原先代码修改的:
#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“
int main()
{
int d;
printf(“请输入十进制数:“);
scanf(“%d“,&d);
printf(“该数的八进制表示为:%o\n“,d);
return 0;
}
用C语言进行十进制和八进制的转换怎么做
如果输入是十进制字符串,输出是八进制字符串,则用如下dec2oct函数可实现转换
#include《stdio.h》int dec2oct(char *dec,char *oct){
int num=0,i=0,t;
char c;
do{
c=*dec;
if(!c) return 0; // 出错了,没找到10进制数
if(c》=’0’ && c《=’9’) break; // 找到十进制数了
else dec++;
}while(1);
do{
num = num*10 + (c-’0’);
c=*++dec;
if(!c) break; // 没有其他字符了
if(c》=’0’ && c《=’9’) continue; // 还有十进制字符,继续
else break; // 没有其他十进制字符了,退出
}while(1);
do{
t = num % 8;
oct[i] = t+’0’;
num = num / 8;
if(num==0) break;
i++;
}while(1);
for(t = (i+1)/2;t《=i;t++){
num = oct[t];
oct[t] = oct[i-t];
oct[i-t]=num;
}
oct[i+1]=’\0’;
return 1;
}
int main()
{
char dec,oct;
while(scanf(“%s“,dec)==1)
if(dec2oct(dec,oct)) printf(“%s\n“,oct);
else break;
return 1;
}
该函数dec2oct先将输入字符串中的 10进制字符串转换成二进制数存下来,然后再将二进制数转换成八进制字符串。
如何用c语言实现十进制数与八进制数的互换
你应该把问题描述清楚。
我们知道,所有数据在计算机中都是以二进制存储的。
你所描述的是不是以字符串来存储数字对应的ASC码??
如果只是在输出上的区别的话很容易做到:
printf(“%o“,x);//以8进制输出
printf(“%d“,x);//以十进制输出
源码:(VC6.0调试通过)
#include《stdio.h》
void main()
{
char ch;
int x;
printf(“请选择转换的类型:\n1 十进制转八进制 \n2 八进制转十进制\n“);
ch=getchar();
switch(ch)
{
case ’1’:
printf(“请输入一个十进制数:“);
scanf(“%d“,&x);
printf(“%d的八进制为%o\n“,x,x);
break;
case ’2’:
printf(“请输入一个八进制数:“);
scanf(“%o“,&x);
printf(“%o的八进制为%d\n“,x,x);
break;
default:
break;
}
}
C语言程序十进制的数怎么转换成八进制的数
#include 《stdio.h》
#include 《math.h》
void main()
{
int n,a,sum = 0,i =0;
printf(“十进制输出一个数n\n“);
scanf(“%d“,&n);
while(n)
{
a = n%8;
n = n/8;
sum += a*pow(10,i);
i++;
}
printf(“八进制输出sum:%d“,sum);
}
C语言程序十进制的数转换成八进制的数
C语言程序十进制的数转换成八进制的数的办法:
#include 《stdio.h》
#include 《math.h》
void main()
{
int n,a,sum = 0,i =0;
printf(“十进制输出一个数n\n“);
scanf(“%d“,&n);
while(n)
{
a = n%8;
n = n/8;
sum += a*pow(10,i);
i++;
}
printf(“八进制输出sum:%d“,sum);
}
C语言程序怎么把十进制的数转换成八进制的数
C语言程序十进制的数转换成八进制的数的办法:
#include 《stdio.h》
#include 《math.h》
void main()
{
int n,a,sum = 0,i =0;
printf(“十进制输出一个数n\n“);
scanf(“%d“,&n);
while(n)
{
a = n%8;
n = n/8;
sum += a*pow(10,i);
i++;
}
printf(“八进制输出sum:%d“,sum);
}

更多文章:
易语言网页api接口怎么调用(易语言,怎么读取网页json的api)
2026年10月11日 08:00
majority of(the majority of 和 a majority of的区别以及用法例句)
2026年10月11日 07:40
another time(another time和other time的区别)
2026年10月11日 05:00








