首页
/
每日頭條
/
生活
/
八進制轉換二進制方法
八進制轉換二進制方法
更新时间:2026-07-23 13:23:58

題目要求:

編寫一個程序,要求從終端輸入一串0/1表示的二進制數,輸出它的八進制表示形式。

八進制轉換二進制方法(二進制八進制轉換器)1

二進制轉八進制的過程

将棧A的10轉換為2,存放到棧B中;

主要考點是練習動态申請内存空間;

#include "stdio.h" #include "math.h" #define STACK_INIT_SIZE 20 #define STACKINCREMENT 10 typedef char ElemType; typedef struct{ ElemType *base; ElemType *top; int stacksize; }sqStack; /*初始化棧*/ void initStack(sqStack *s) { /*内存中開辟一段連續空間作為棧空間,首地址賦值給s->base*/ s->base = (ElemType *)malloc(STACK_INIT_SIZE * sizeof(ElemType)); if(!s->base) exit(0); /*分配空間失敗*/ s->top = s->base; /*最開始,棧頂就是棧底*/ s->stacksize = STACK_INIT_SIZE; /*最大容量為STACK_INIT_SIZE */ } /*入棧操作,将e壓入棧中*/ void Push(sqStack *s, ElemType e){ if(s->top - s->base >= s->stacksize){ /*棧滿,追加空間*/ s->base = (ElemType *)realloc(s->base, (s->stacksize STACKINCREMENT)*sizeof(ElemType)); if(!s->base) exit(0); /*存儲分配失敗*/ s->top = s->base s->stacksize; s->stacksize = s->stacksize STACKINCREMENT; /*設置棧的最大容量*/ } *(s->top) = e; /*放入數據*/ s->top ; } /*出棧操作,用e将棧頂元素返回*/ void Pop(sqStack *s , ElemType *e){ if(s->top == s->base) return; *e = *--(s->top); } /*計算棧s的當前長度*/ int StackLen(sqStack s){ return (s.top - s.base) ; } main() { ElemType c; sqStack s1; sqStack s2; int len,i,j,sum = 0; initStack(&s1); /*創建一個棧s1,用來存放二進制字符串*/ printf("Please input a binary number and type # for end\n"); /*輸入0/1字符表示的二進制數,以#結束*/ scanf("%c",&c); while(c!='#') { if(c=='0' || c=='1') Push(&s1,c); scanf("%c",&c); } initStack(&s2); /*創建一個棧s2,用來存放八進制字符串*/ len = StackLen(s1); /*得到棧中的元素個數,即二進制數的長度*/ for(i=0;i<len;i=i 3){ for(j=0;j<3;j ){ Pop(&s1,&c); /*取出棧頂元素*/ sum = sum (c-48) * pow(2,j); /*轉換為八進制數*/ if(s1.base == s1.top) break; } Push(&s2,sum 48) ; /*将八進制數以字符形式壓入棧中*/ sum = 0; } while(s2.base != s2.top ){ /*輸出八進制棧的内容*/ Pop(&s2,&c); printf("%c",c); } getche(); }

運行結果:

八進制轉換二進制方法(二進制八進制轉換器)2

運行結果

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
南京地鐵38條
南京地鐵38條
第一個消息是:南京洋珠巷地鐵通道建設項目可行性研究招标出爐,蘇量設計中标。中标價為38萬,本項目為洋珠巷地鐵通道建設項目基坑設計。如果一個城市交通都不方便,他拿什麼吸引人。地鐵是帶動經濟發展、方便出行的。南京地鐵現在沒有環線,所有人都需要擠...
2026-07-23
平常路邊賣的芹菜可以生吃嗎
平常路邊賣的芹菜可以生吃嗎
俗話說“民以食為天,食以安為先”食品安全關系到千家萬戶是老百姓關注的熱點▼21日,吉林省市場監督管理廳網站發布了《吉林省市場監督管理廳關于26批次食品不合格情況的通告(2019年第42期)》。近期,該廳組織抽檢了13類食品共760批次樣品。...
2026-07-23
不是所有的紅包都能領
不是所有的紅包都能領
春節将至,親友之間相互祝福的方式之一便是在微信上發紅包,讨彩頭。可現在的紅包可謂是花樣百出,哪些紅包是安全的?哪些紅包是陷阱呢?我們應該如何辨别真僞呢?哈爾濱市公安局反電信網絡詐騙中心在此提示,收到以下幾種紅包要小心:個人信息不要漏。凡是要...
2026-07-23
花多多一号和十号怎麼用
花多多一号和十号怎麼用
花多多10号肥料如何用?我來告訴你使用前建議仔細閱讀說明書,了解該肥料是否适用于你的盆栽。在使用花多多10号的時候,根據你所需肥水量的多少,用勺子取出适當勺數的肥料,1勺=2g,然後混合上清水制成1000倍的稀釋溶液,稀釋後可以澆灌土壤或噴...
2026-07-23
空調老是自動關機是什麼原因
空調老是自動關機是什麼原因
可能是電壓異常。當電壓波動較大,超出或者低于空調能正常使用的電壓範圍時,空調就有出現自動關機的可能性,隻需要等到電壓正常就可以繼續使用了。也可能是因為空調遙控器失靈。将遙控器對準空調按,如果不能控制的話,說明就是遙控器失靈,建議更換電池或者...
2026-07-23
Copyright 2023-2026 - www.tftnews.com All Rights Reserved