www.rtmj.net > C语言 十进制数转换八进制 算法

C语言 十进制数转换八进制 算法

原发布者:血战长空wlg题目:数制转换问题1.需求分析将十进制数N转换成八进制数是计算机实现计算的基本问题,解决方案很多,其中最简单的方法是除8取余法.1)本方案采用顺序栈的方式模拟整个过程.其原理如下:例子:(1348)

c语言程序十进制的数转换成八进制的数的办法:#include #include 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); }

#include main() { int a,x,y,i=0; int num[20]; printf("输入十进制数:"); scanf("%d",&a); while((x=a/8)!=0) { y=a%8; num[i++]=y; a=x; } num[i]=a; printf("八进制为:"); for(;i>=0;i--) printf("%c",num[i]); printf("\n"); }

使用%o格式控制,则输出8进制,如下 printf("%o",a);

#include 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);}

先将十进制数转换为二进制数,然后就是从低位开始,每三位对应一位,不足补0 比如-32的代码是10101110(随便写的) 转换之后就是256,前面一个不足三位,在最前面补0010 101 1102 5 6

#include <stdio.h>void main ( ){ int x; printf("输入要转换的十进制数:\n"); scanf("%d",&x); printf("对应的八进制数是:%o",x);}

#include void main ( ) { int x; printf("输入要转换的十进制数:\n"); scanf("%d",&x); printf("对应的八进制数是:%o",x); }

10进制转换8进制输出,使用printf函数的格式输出%o即可.如果需要得到转换后的字符串,使用sprintf函数即可.例程: #include <stdio.h>int main (){ int x; char s[100]; printf("输入要转换的十进制数:\n"); scanf("%d",&x); sprintf(s,"%o",x); //十进制转换为八进制,并保存到s字符串当中 printf("使用sprintf函数转换的八进制数是:%s\n",s) printf("使用printf函数转换的八进制数是:%o\n",x); //十进制转换为八进制,并直接输出到屏幕 return 0;}

现在我一共给你三个答案: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);

网站地图

All rights reserved Powered by www.rtmj.net

copyright ©right 2010-2021。
www.rtmj.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com