/*
十六 -> 1位十六进制变 4 位二进制 -> 3位二进制变 1 位八进制 (从后往前,前面不够3位就补零) (5B89)16
= (0101 1011 1000 1001)2
= (000 101 101 110 001 001)2
= (055611)8
= (55611)8
*//*
1.把16进制字符串分割
2.把每位 16进制 转化成 2 进制
3.从后开始数,每 3 位 2进制组成一组,开头不够 3位的话可以补零
4.把每组 2进制转化为 8进制
*/#include <iostream>
#include <string>
using namespace std;string s16; //16进制 string s2;  //2 进制 //string s8;  //8 进制  void change16to2(char c) //把每位 16进制 转化成 2 进制{int tempNum, yuShu;//把字符串转换成数字 if (c>='A') tempNum = c - 'A' + 10;else tempNum = c - '0';//cout<<num<<endl;string tempS = "";  //tempS为每一组 2进制 字符串 char tempC;while (tempNum!=0)  //这里处理完的tempS是逆序的,还没完成 {yuShu = tempNum % 2;tempC = yuShu + 48;tempS = tempS +  tempC;tempNum = tempNum / 2;}for (int i=0;i<4-tempS.length();i++)  //开头补零处理 s2 = s2 + "0";for (int i=tempS.length()-1;i>=0;i--)s2 = s2 + tempS[i];  //这里得出的 s2是一个 2进制 字符串 //s2 = s2 + " ";}void change2to8()  //把每组 2进制转化为 8进制 {int s2Len = s2.length();int ans = 0;//用来计数,每 3 清零 for (int i=0;i<s2Len;i++){ans++;if (ans%3==0){ans = 0;int result;result = (s2[i-2]-'0')*4 + (s2[i-1]-'0')*2 +(s2[i-0]-'0')*1;  //计算出每位8进制 if (result!=0) cout<<result;}}} int main()
{int n;cin>>n;while(n--){s16 = "";s2 = "";cin>>s16;for (int i=0;i<s16.length();i++)  //把16进制字符串分割 change16to2(s16[i]);  //把每位 16进制 转化成 2 进制 int s2LenLeft = 3-s2.length()%3;for (int i=0;i<s2LenLeft;i++)  //补零处理,使其变成每 3个 2进制 一组s2.insert(0,"0");  //string的方法,insert,用来在字符串的某个位置插入东西 change2to8();cout<<endl;}return 0;
}

此算法可能会超时。。。

十六进制转八进制(代码)相关推荐

  1. 十六进制转八进制代码心得

    最初思路:直接将字符串的十六进制转为八进制. 遇到障碍: 1.如何将十六进制字符串中的每一位字符单独取出?? 如果只是取出字符串中的字符,直接将自付款看做数组就行,直接以数组形式取出字符就可以. 2. ...

  2. 十六进制转八进制c++代码_如何将十六进制代码上传到微控制器?

    十六进制转八进制c++代码 Read: 8051 Microcontroller programming using Keil Uvision IDE 阅读: 使用Keil Uvision IDE进行 ...

  3. 【蓝桥杯】基础练习 十六进制转八进制(Java实现)

    试题 基础练习 十六进制转八进制 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1< ...

  4. 基础练习 十六进制转八进制 c语言

    基础练习 十六进制转八进制 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行,每行一个由09.大写字母A ...

  5. java蓝桥杯 试题-基础练习-十六进制转八进制

    试题-基础练习-十六进制转八进制 题目 试题 基础练习 十六进制转八进制 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 ...

  6. VB 进制转换大全(十进制、十六进制、八进制、二进制、二进制流)互转

    模块包含了下面的各种转换: 二进制转十进制 二进制转化为八进制 二进制转化为十六进制 八进制转化为十进制 八进制转化为二进制 八进制转化为十六进制 十进制转二进制 十进制转化为八进制 十进制转化为十六 ...

  7. 蓝桥杯基础练习合集一(C语言) 1.A+B问题2.数列排序3.十六进制转八进制4.十六进制转十进制5.十进制转十六进制

    目录 1.A+B问题 2.数列排序 3.十六进制转八进制 4.十六进制转十进制 5.十进制转十六进制 1.A+B问题 问题描述 输入A.B,输出A+B. 输入格式 输入的第一行包括两个整数,由空格分隔 ...

  8. 蓝桥杯练习题之十六进制转八进制

    基础练习 十六进制转八进制 时间限制:1.0s   内存限制:512.0MB 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n< ...

  9. 蓝桥杯简单题之十六进制转八进制(JAVA版)

    首先对等待程序猿成长之路系列的小伙伴们说声抱歉,春节来临,可能要拖更一段时间,但是草稿已经在写,发布将会于春节后进行发布 春节第一天闲着无聊打算找个蓝桥杯的题目练练手,诶嘿,这就找到一题,话不多说,上 ...

  10. 十六进制转八进制(十六进制转十进制,十进制转八进制)

    ##刚开始学习C的小白,2022-1-11第一篇,分享自己写的十六转八进制,欢迎各位指导!!![可爱皱眉][可爱皱眉][可爱皱眉][可爱皱眉][可爱皱眉] 在此程序中,将十六进制转成十进制,再转成八进 ...

最新文章

  1. 辞职前为什么挣扎_当您感到自己像开发人员一样挣扎时,为什么学得最多
  2. dubbo之注册管理中心
  3. Android 之 ProgressDialog用法介绍(矩形进度条 和 圆形 进度条)
  4. 基于GIS的视频管理指挥平台
  5. 给wordpress最新文章添加“new”标记
  6. android 刷windows10,微软计划在Android机上刷Windows 10
  7. superset 时区问题Timestamp subtraction must have the same timezones or no timezones
  8. unity 纹理压缩格式‘_纹理优化:让你的纹理也“瘦”下来
  9. python实现雪花飘落的效果_使用javascript实现雪花飘落的效果
  10. java double的加法_java Double 进行加减乘除
  11. linux可视化打开root,Linux非root用户登录情况下可视化编辑root权限文本
  12. CAD .Net 开发-快速入门
  13. Ant Design Charts绘制中国地图并动态添加标记点
  14. 特斯拉如何恢复出厂设置_iphone如何恢复手机出厂设置
  15. 华为OD机试真题 Python 实现【数字涂色】
  16. 【C语言】设计实现M*N矩阵和N*M矩阵相乘
  17. multi-kernels、ALLOC与USE、Zero-Copy
  18. C# 枚举高级用法之Description
  19. 计算机串口连接原理,串口通信的原理及USB转串口通信
  20. arm linux运行安卓app,Android x86 下运行纯ARM版APP

热门文章

  1. R语言实现前向逐步回归(前向选择模型)
  2. mysql的时间戳_MySQL时间戳(Timestamp)函数
  3. 推荐系统之位置敏感的评价指标--MAP和NDCG
  4. 三分钟教会你自制 iconFont 字体图标库
  5. 智慧物流成新蓝海 国内包裹总量将超300亿个
  6. 不懂任何VBA代码,也可实现数据透视表自动更新
  7. activity监听器使用
  8. arp嗅探——ettercap+driftnet
  9. par函数cex参数-控制文字和点的大小
  10. linux桌面屏幕大,Linux桌面进化史