十六进制转八进制(代码)
/*
十六 -> 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.如何将十六进制字符串中的每一位字符单独取出?? 如果只是取出字符串中的字符,直接将自付款看做数组就行,直接以数组形式取出字符就可以. 2. ...
- 十六进制转八进制c++代码_如何将十六进制代码上传到微控制器?
十六进制转八进制c++代码 Read: 8051 Microcontroller programming using Keil Uvision IDE 阅读: 使用Keil Uvision IDE进行 ...
- 【蓝桥杯】基础练习 十六进制转八进制(Java实现)
试题 基础练习 十六进制转八进制 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1< ...
- 基础练习 十六进制转八进制 c语言
基础练习 十六进制转八进制 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行,每行一个由09.大写字母A ...
- java蓝桥杯 试题-基础练习-十六进制转八进制
试题-基础练习-十六进制转八进制 题目 试题 基础练习 十六进制转八进制 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 ...
- VB 进制转换大全(十进制、十六进制、八进制、二进制、二进制流)互转
模块包含了下面的各种转换: 二进制转十进制 二进制转化为八进制 二进制转化为十六进制 八进制转化为十进制 八进制转化为二进制 八进制转化为十六进制 十进制转二进制 十进制转化为八进制 十进制转化为十六 ...
- 蓝桥杯基础练习合集一(C语言) 1.A+B问题2.数列排序3.十六进制转八进制4.十六进制转十进制5.十进制转十六进制
目录 1.A+B问题 2.数列排序 3.十六进制转八进制 4.十六进制转十进制 5.十进制转十六进制 1.A+B问题 问题描述 输入A.B,输出A+B. 输入格式 输入的第一行包括两个整数,由空格分隔 ...
- 蓝桥杯练习题之十六进制转八进制
基础练习 十六进制转八进制 时间限制:1.0s 内存限制:512.0MB 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n< ...
- 蓝桥杯简单题之十六进制转八进制(JAVA版)
首先对等待程序猿成长之路系列的小伙伴们说声抱歉,春节来临,可能要拖更一段时间,但是草稿已经在写,发布将会于春节后进行发布 春节第一天闲着无聊打算找个蓝桥杯的题目练练手,诶嘿,这就找到一题,话不多说,上 ...
- 十六进制转八进制(十六进制转十进制,十进制转八进制)
##刚开始学习C的小白,2022-1-11第一篇,分享自己写的十六转八进制,欢迎各位指导!!![可爱皱眉][可爱皱眉][可爱皱眉][可爱皱眉][可爱皱眉] 在此程序中,将十六进制转成十进制,再转成八进 ...
最新文章
- 辞职前为什么挣扎_当您感到自己像开发人员一样挣扎时,为什么学得最多
- dubbo之注册管理中心
- Android 之 ProgressDialog用法介绍(矩形进度条 和 圆形 进度条)
- 基于GIS的视频管理指挥平台
- 给wordpress最新文章添加“new”标记
- android 刷windows10,微软计划在Android机上刷Windows 10
- superset 时区问题Timestamp subtraction must have the same timezones or no timezones
- unity 纹理压缩格式‘_纹理优化:让你的纹理也“瘦”下来
- python实现雪花飘落的效果_使用javascript实现雪花飘落的效果
- java double的加法_java Double 进行加减乘除
- linux可视化打开root,Linux非root用户登录情况下可视化编辑root权限文本
- CAD .Net 开发-快速入门
- Ant Design Charts绘制中国地图并动态添加标记点
- 特斯拉如何恢复出厂设置_iphone如何恢复手机出厂设置
- 华为OD机试真题 Python 实现【数字涂色】
- 【C语言】设计实现M*N矩阵和N*M矩阵相乘
- multi-kernels、ALLOC与USE、Zero-Copy
- C# 枚举高级用法之Description
- 计算机串口连接原理,串口通信的原理及USB转串口通信
- arm linux运行安卓app,Android x86 下运行纯ARM版APP