算法基础

您所在的位置:网站首页 十六进制转四进制算法 算法基础

算法基础

2024-07-13 15:58:16| 来源: 网络整理| 查看: 265

进制转换

       六进制,八进制,二进制,十进制之间的转换是最基本的能力,但有些题目对于新手来说有点难以理解,我拿出一道题来拓展的讲一讲。 进制转换方法:    1、二进制转八进制——取每三位按权相加。    2、二进制转十六进制—取每四位按权相加。    3、二进制转十进制——按权相加。    4、八进制转二进制——熟练掌握二进制转换,做到看到一个数直         接写它的二进制数,再将二进制相连接,不足三位补0,去前导         0。    6、十六进制转二进制—同八进制,注意不足四位补0,去前导0.    7、十进制转八进制——除八取余。    8、十进制转十六进制—除十六取余。    9、十六进制和八进制转十进制通过二进制转换。

问题描述

给定n个十六进制正整数,输出它们对应的八进制数。

输入格式

输入的第一行为一个正整数n (1 switch(sixteen[j]) { case '0':tow+="0000";break; case '1':tow+="0001";break; case '2':tow+="0010";break; case '3':tow+="0011";break; case '4':tow+="0100";break; case '5':tow+="0101";break; case '6':tow+="0110";break; case '7':tow+="0111";break; case '8':tow+="1000";break; case '9':tow+="1001";break; case 'A':tow+="1010";break; case 'B':tow+="1011";break; case 'C':tow+="1100";break; case 'D':tow+="1101";break; case 'E':tow+="1110";break; case 'F':tow+="1111";break; default:break; } }

二进制转八进制是从右往左每3位按权相加,不足补0。所以我们在转换之前先要确保它是3的整除数。

if(tow.length()%3==1)//1 tow="00"+tow; //001 if(tow.length()%3==2) tow="0"+tow;

因为要确保不能存在前导0,所以我们拿出前三个来判断他们相加是不是等于0,即他们三个等不等于0:

if(!(tow[0]=='0'&&tow[1]=='0'&&tow[2]=='0')) { char temp; temp = (tow[0]-'0')*4+(tow[1]-'0')*2+tow[2]; eight += temp; }

‘10’+5, 即‘10’的ASCLL码加上5, 即‘15’的ASCLL码 如果我是char temp=15,那就是ASCLL码为15的值。 然后对后面的进行转换:

for(int j=3; j if(tow.substr(j,3)=="000") eight+="0"; else if(tow.substr(j,3)=="001") eight+="1"; else if(tow.substr(j,3)=="010") eight+="2"; else if(tow.substr(j,3)=="011") eight+="3"; else if(tow.substr(j,3)=="100") eight+="4"; else if(tow.substr(j,3)=="101") eight+="5"; else if(tow.substr(j,3)=="110") eight+="6"; else if(tow.substr(j,3)=="111") eight+="7"; }

这是我做的完整的代码,一开始我以为是输入完十六进制后再一起输出八进制,后来发现输入一个输出一个和一起输入一起输出都是对的。

#include using namespace std; int main() { int n; cin>>n; for(int i=0; i switch(sixteen[j]) { case '0':tow+="0000";break; case '1':tow+="0001";break; case '2':tow+="0010";break; case '3':tow+="0011";break; case '4':tow+="0100";break; case '5':tow+="0101";break; case '6':tow+="0110";break; case '7':tow+="0111";break; case '8':tow+="1000";break; case '9':tow+="1001";break; case 'A': case 'a':tow+="1010";break; case 'B': case 'b':tow+="1011";break; case 'C': case 'c':tow+="1100";break; case 'D': case 'd':tow+="1101";break; case 'E': case 'e':tow+="1110";break; case 'F': case 'f':tow+="1111";break; } } if(tow.length()%3==1) tow="00"+tow; if(tow.length()%3==2) tow="0"+tow; if(!(tow[0]=='0'&&tow[1]=='0'&&tow[2]=='0')) { char temp; temp = (tow[0]-'0')*4+(tow[1]-'0')*2+tow[2]; eight += temp; } for(int j=3; j


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭