當前位置:首頁 » 編程軟體 » 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 瀏覽:750
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:1012
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:719
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:879
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:774
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1127
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:351
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:229
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:912
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:876