【蓝桥杯】基础练习 十六进制转八进制
来源:互联网 发布:淘宝免费其他流量来源 编辑:程序博客网 时间:2024/06/05 17:01
题目链接:http://lx.lanqiao.org/problem.page?gpid=T51
思路:
将16进制转成2进制,再转成8进制。
代码:
#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;#define MAXN 100000char str[MAXN+10];//16进制存储数组 int str_2[4*MAXN+10]; //2进制存储数组 char str_8[2*MAXN+10]; //8进制存储数组 int main(){int i, j;int T;scanf("%d", &T);while(T--){scanf("%s", str);int len = strlen(str);for(i=len-1, j=0; str[i]; --i){//将16进制转成2进制 int n;if(str[i]>='0'&&str[i]<='9')n = str[i] - '0';else n = str[i] - 'A' + 10;do{str_2[j++] = n&1;n = n>>1; }while(j%4!=0);}len = j;//将2进制转换为8进制 int num;j = 0;if(len%3 == 2){str_8[j++] = str_2[len-1]*2+str_2[len-2]+'0';len -= 2;}else if(len%3 == 1){str_8[j++] = str_2[len-1] + '0';len -= 1;}for(i = len-1; i>=0; i-=3, j++){str_8[j] = str_2[i]*4+str_2[i-1]*2+str_2[i-2]+'0';}str_8[j]='\0';int i = 0;while(str_8[i]=='0')++i;//去除开头的0 for(;str_8[i];++i)printf("%c", str_8[i]);printf("\n");}return 0;}
0 0
- 蓝桥杯:基础练习 十六进制转八进制
- "蓝桥杯“基础练习:十六进制转八进制
- 蓝桥杯 【基础练习】 十六进制转八进制
- 蓝桥杯:基础练习 十六进制转八进制
- 蓝桥杯基础练习--十六进制转八进制
- 【蓝桥杯】基础练习 十六进制转八进制
- 蓝桥杯基础练习 十六进制转八进制
- 基础练习-十六进制转八进制 -JAVA蓝桥杯
- 1501091239-蓝桥杯-基础练习 十六进制转八进制
- 蓝桥杯 基础练习 十六进制转八进制
- 蓝桥杯_ 基础练习 十六进制转八进制
- "蓝桥杯“基础练习:十六进制转八进制
- 蓝桥杯-基础练习12 十六进制转八进制
- 蓝桥杯-基础练习-十六进制转八进制
- 蓝桥杯:基础练习 十六进制转八进制
- 蓝桥杯 基础练习 十六进制转八进制
- 蓝桥杯 基础练习 十六进制转八进制
- 【蓝桥杯】【基础练习02】【十六进制转八进制】
- Python字符编码详解
- 猴子分桃
- ACM-递归之n皇后——hdu2553
- 说说JSON和JSONP
- linux下的静态库和动态库的编译和应用
- 【蓝桥杯】基础练习 十六进制转八进制
- unix高级环境编程 例子 代码实现练习 第六章:系统数据文件和信息
- 苹果手机游戏天天酷跑如何充值
- jqueryui 1.8.19引用顺序(及var basePrototype = new base()错误)
- Multi Data Center Replication: Architecture
- ArcGIS Runtime SDK for iOS开发系列教程(3)——Objective-C语法基础
- 一些图像处理函数用法
- 银行柜台业务调度系统
- HDU 2149 Public Sale(巴士博弈)