简单的利用栈 将二进制转换成八进制
来源:互联网 发布:照片解密软件 编辑:程序博客网 时间:2024/04/28 19:16
利用栈
将二进制数转换为八进制
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- struct mystack
- {
- int *top;
- int *base;
- };
- //栈的结构
- int main()
- {
- mystack stack,result;
- stack.top = (int *)malloc(2000*sizeof(int));
- stack.base = stack.top;
- result.top = (int *)malloc(2000*sizeof(int));
- result.base = result.top;
- char c;
- scanf("%c", &c);
- while(c!='\n')
- {
- *stack.top = c - 48;
- stack.top++;
- scanf("%c", &c);
- }
- int lenth = stack.top - stack.base;
- int left = lenth % 3;//left表示当前二进制数%3之后剩下的数,进行单独处理
- int temp = 0; //用来存3位二进数转化成一个八进制数的结果
- for(int i = 0; i < (lenth - left) / 3; i++) //举例说明吧,比如1010 现在栈里的顺序是0101,把前三位取出来合成一位八进制数,剩下的最后一位单独处理
- {
- temp = 0;
- stack.top--;
- temp = *stack.top * 1;
- stack.top--;
- temp += *stack.top * 2 ;
- stack.top--;
- temp += *stack.top * 4 ;
- *result.top = temp; //将满足三位一转换的八进制数保存在结果栈中
- result.top++;
- }
- temp = 0;
- for(int i = 1;i < left + 1; i++)
- {
- stack.top--;
- temp += *stack.top * i;//对剩下的二进制数单独处理,他肯定是小于等于两位的二进制数
- }
- if(left != 0)//如果说满足原来二进制数能够被三整除,说明不需要再往结果栈里面push数据了。
- {
- *result.top = temp;
- result.top++;
- }
- while(result.top != result.base)
- {
- result.top--;
- printf("%d", *result.top);//输出结果栈
- }
- printf("\n");
- return 0;
- }
欢迎来到我的IT 博客http://www.nightsong.cc
0 0
- 简单的利用栈 将二进制转换成八进制
- 简单的利用栈 将二进制转换成十进制
- 简单的利用栈 将二进制转换成十六进制
- Java数据结构课程设计 利用栈,将十进制数转换成八进制的数
- 利用栈的特性,将十进制数转换成八进制数
- C语言栈的实现及利用栈实现二进制到八进制的转换
- 二进制到八进制的转换
- 利用栈的基本操作,将十进制数转换为八进制数
- 利用栈将十进制转换为二进制
- 十进制转换成二进制、八进制、十六进制的通用方法
- 进制转换器(用顺序栈实现)(可实现简单的二进制或八进制或十进制的转换)
- 将十进制转换成八进制
- 将十进制转换成八进制
- 十进制与二进制八进制十六进制的转换
- 二进制,八进制,十六进制间的转换
- 十进制、二进制、八进制、十六进制之间的转换
- 二进制 八进制 十六进制 之间的相互转换
- 二进制、八进制、十进制、十六进制的转换
- idea 创建maven module模块
- 0001和1相互转化问题
- windows连接代理服务器,总是弹出输入用户名和密码的框的问题
- LINUX 下的静态IP配置无法连接网络
- PC端页面之间的跳转
- 简单的利用栈 将二进制转换成八进制
- 接口
- SpringMVC中使用swagger为api接口生成文档
- Spring Boot项目使用参数校验
- 1. Two Sum
- matlab中图像格式转换
- 嵌入式linux网络配置
- 如何编辑修改PDF文字
- centos minimal7 安装pip