当前位置:首页 » 编程软件 » c编程十进制转八进制

c编程十进制转八进制

发布时间: 2023-02-04 19:24:38

① 怎么样用c程序编写“十进制转为八进制”

如只求输出正确就是楼上的朋友那样
如果要用算法实现,这样:(计算结果在num8[]里面)
main(){
int
i;
int
num10,temp;
int
num8[15];
printf("please
input
Num10:");
scanf("%d",&num10);
temp=num10;
for(i=0;i<15;i++)
num8[i]='';
for(i=0;num10!=0;i++)
{
num8[i]=num10%8;
num10=num10/8;
}
printf("Num10:%d
is
Num8:",temp);
for(;i>0;i--)
printf("%d",num8[i-1]);
printf("\n");
getch();
}

c语言“把十进制数转换成八进制数”怎么写

#include<stdio.h>
#include<string.h>
main()
{
inti,m,n,s=0,t=1;chara[100],b[100];
gets(a);//用回车分割
scanf("%d%d",&n,&m);//输入的进制和想要转换的进制
for(i=strlen(a)-1;i>=0;i--)//先转10进制
{ if(n!=16)
s+=(a[i]-48)*t;
else
s+=(a[i]-55)*t;
t*=n;
}
for(i=0;s;i++)//10进制转你想要的进制
{
if(s%m>=10)
b[i]=s%m+55;
else
b[i]=s%m+48;
s/=m;
}
b[i]='';
for(i=strlen(b)-1;i>=0;i--)
printf("%c",b[i]);
}

这是任意进制的转换 望满意

③ 用c语言编程把一个十进制数转化为八进制数

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

④ 用c语言的函数调用如何将一个十进制数转换为八进制数

  1. 10进制转换8进制输出,使用printf函数的格式输出%o即可。如果需要得到转换后的字符串,使用sprintf函数即可。

  2. 例程:

    #include<stdio.h>
    intmain(){
    intx;
    chars[100];
    printf("输入要转换的十进制数: ");
    scanf("%d",&x);
    sprintf(s,"%o",x);//十进制转换为八进制,并保存到s字符串当中
    printf("使用sprintf函数转换的八进制数是:%s ",s)
    printf("使用printf函数转换的八进制数是:%o ",x);//十进制转换为八进制,并直接输出到屏幕
    return0;
    }

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

  1. 方法一:直接使用控制字符串 %o 八进制%x

  2. 方法二:

    求余来算,比如求十进制数 x(x>100) 的8进制,先通过 x%8 可以得到个位(末位)上的数,当十进制数等于8时,必然会进位,求余的结果正好是不能进位的部分,x=x/8(这就像位移,x的8进制数向右移了一位),这样已经求出来的 个位 位移后没有了,原来的十位变成了个位,继续把得到的x按上面的方式求末位,就能求出来十位,按照这种方式得到的 8进制数 是反的(先得到个位,再十位。。。),这样很适合放到栈中,取得时候又会反过来,伪代码可以这样写:

    while(x){

    printf("%d",x%n);//会打印出x转换为 N进制数 从低位到高位上的每一位数

    x/=n;

    }

  3. 十进制转换N进制:

    #include<stdio.h>

    #include<stdlib.h>

    #include<string.h>

    typedef int INT;

    typedef struct dd

    {

    INT data;

    struct dd *next;

    }LNode,*LStack;

    LStack pushstack(LStack top,int x)

    {

    LStack p;

    p=(LStack)malloc(sizeof(LNode));

    if((x)!=-1) {p->data=(x); p->next=top; top=p;}

    return top;

    }

    LStack outstack(LStack top,int *x)

    {

    LStack p=top;

    *x=p->data;

    top=p->next;

    free(p);

    return top;

    }

    main()

    {

    int x,n;

    LStack top=NULL;

    printf("请输入原数及要转换的进制:");

    do{

    scanf("%d%d",&x,&n); //输入一个十进制数和要转换的进制,比如3 2 得到1 }while(x>35||x<0||n<2);

    while(x){ //这个循环把每一位放到栈中

    top=pushstack(top,x%n);

    x/=n;

    while(top!=NULL)

    {

    top=outstack(top,&x);

    if(x<10)

    printf("%c",x+'0');

    else

    printf("%c",x+'A'-10);

    }

    return 0; }

⑥ 用C语言进行十进制和八进制的转换怎么做

如果输入是十进制字符串,输出是八进制字符串,则用如下dec2oct函数可实现转换

#include<stdio.h>

intdec2oct(char*dec,char*oct){
intnum=0,i=0,t;
charc;
do{
c=*dec;
if(!c)return0;//出错了,没找到10进制数
if(c>='0'&&c<='9')break;//找到十进制数了
elsedec++;
}while(1);
do{
num=num*10+(c-'0');
c=*++dec;
if(!c)break;//没有其他字符了
if(c>='0'&&c<='9')continue;//还有十进制字符,继续
elsebreak;//没有其他十进制字符了,退出
}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]='';
return1;
}
intmain()
{
chardec[20],oct[20];
while(scanf("%s",dec)==1)
if(dec2oct(dec,oct))printf("%s ",oct);
elsebreak;
return1;
}

该函数dec2oct先将输入字符串中的10进制字符串转换成二进制数存下来,然后再将二进制数转换成八进制字符串。

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:829
制作脚本网站 发布:2025-10-20 08:17:34 浏览:1094
python中的init方法 发布:2025-10-20 08:17:33 浏览:799
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:964
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:855
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1207
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:428
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:308
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:983
python股票数据获取 发布:2025-10-20 07:39:44 浏览:952