首页
/
每日頭條
/
生活
/
八進制轉換二進制方法
八進制轉換二進制方法
更新时间:2026-02-27 21:43:39

題目要求:

編寫一個程序,要求從終端輸入一串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
推荐阅读
事業單位編制是什麼意思
事業單位編制是什麼意思
事業單位編制是什麼意思?事業單位編制是指事業單位中實行的一種編制制度,今天小編就來聊一聊關于事業單位編制是什麼意思?接下來我們就一起去研究一下吧!事業單位編制是什麼意思事業單位編制是指事業單位中實行的一種編制制度。事業編制是指:為國家創造或...
2026-02-27
襲的意思
襲的意思
襲的意思?襲(拼音:xí),是漢語通用規範一級字最早見于金文本義表示死者穿的衣襟在左邊的内衣,後引申為重疊、重複、承襲等義,我來為大家講解一下關于襲的意思?跟着小編一起來看一看吧!襲的意思襲(拼音:xí),是漢語通用規範一級字。最早見于金文...
2026-02-27
喬欣演的古裝電視劇有哪些
喬欣演的古裝電視劇有哪些
日前,又一部熱門小說改編成網絡劇正式官宣,這部劇叫《嫣語賦》,是一部根據同名小說改編的大女主古裝劇,男女主角是我們非常熟悉的演員,女主角是喬欣,男主角是徐正溪,此外,還有劉芮麟、許雅婷、高晟、王倩、戰宇等主演。7月5日上午10點,網劇《嫣語...
2026-02-27
怎樣減脂肪最快最有效
怎樣減脂肪最快最有效
怎樣減脂肪最快最有效?要飲食控制,嚴格的高熱量的攝入,比如說要嚴格控制油炸食品,堅果類的食物,肥肉,高脂肪類的食物的攝入因為高脂肪食物的攝入,油脂比較大,另外它容易導緻脂肪的堆積;同時也要控制碳水化合物含量比較高的甜點,面點的量,因為過多的...
2026-02-27
ios15.6 beta5可以更新嗎
ios15.6 beta5可以更新嗎
今天淩晨,蘋果向iPhone和iPad用戶推送iOS15.6第5個開發者預覽版更新,版本号為19G5063a。本次更新距離6月29日發布的上個Beta4間隔僅7天,而之前的兩個版本間隔都是14天,有點加速的意思。快的話,下周可能就是iOS1...
2026-02-27
Copyright 2023-2026 - www.tftnews.com All Rights Reserved