10进制与26进制转化

您所在的位置:网站首页 10进制和16进制转换 10进制与26进制转化

10进制与26进制转化

2024-07-11 11:41:44| 来源: 网络整理| 查看: 265

蓝桥杯--进制转换--10进制与26进制转换中的问题 一、问题描述1.字母编号序列LANQIAO表示的数为多少?2.2021用字母怎么表示? 二、问题分析2.1规律解析2.2 十进制二、八、十六进制2.3二进制八进制、十六进制 三、26进制转化为10进制四、10进制转化为26进制五、10进制转化26进制中出现的问题及方法5.1问题提出5.2 问题解决 六 java代码

一、问题描述

题目描述:A=1, B=2, C=3,…Z=26, AA=27, AB=28, AC=29…AZ=52, BA=53,… ZZ=702, … 以此类推。按照这个规律请你请写出函数判断:

1.字母编号序列LANQIAO表示的数为多少? 2.2021用字母怎么表示? 二、问题分析 2.1规律解析

按照给定的表示方法,可以知道这是进制转化的题目,将10进制和26进制进行相互转化,我们已经熟悉10进制和2、8、16进制之间的相互转化。首先,给出基本的进制转化方法。

2.2 十进制二、八、十六进制 一、10进制化2进制: 整数采用除基数再倒取余数法。小数部分采用乘基数再取整数法。 ①.正整数转2进制--->除2取余,然后倒序排列,高位补零。 将正的十进制数除以二,得到的商再除以二,依次类推直到 商为0或1时为止,然后在旁边标出各步的余数.最后对余数倒序。 42转化为2进制为(8字节):00101010 ②.负整数转2进制---->先将正整数部分化为2进制,再取反,再加1; -42转化为2进制(8字节): 1.正整数部分转化 00101010, 2.转化结果取反 11010101, 3.转反结果加1 11010110, ③.小数转2进制---->先将整数部分化成2进制,再按照小数部分化为2进制。 对小数点以后的数乘以2,取结果的整数部分(不是1就是0),然后再用小数部分再乘以2, 再取结果的整数部分……以此类推,直到小数部分为0或者位数已经够了就满足。 最后将小数的整数部分和小数部分连在一起,注意整数部分是倒序,小数部分是正序。 0.125转化为2进制(8字节): 0.001 5.125转化为2进制(8字节): 1. 5转化为2进制:101 2. 0.125转化为2进制:001 3. 5.125转化为2进制:101.001 二、2进制转化为10进制: ①.2进制正整数转化为10进制(补齐后首位为0) 按照基数的顺序从右边指数为0开始相乘再相加 1010 = 1*2*2*2 + 0*2*2 + 1*2 +0*1 = 10 ②.2进制负整数转化为10进制(补齐后首位为1) 补齐字节后首位为1,先取反再换算。 转化11101011: 1.取反 -00010100 2. 换算 -20 ③.2进制小数转化为10进制:小数部分从左边往右(基数的指数部分:-1,-2,-3.....) 三、对于8进制和16进制乃至26进制的转化方法都是一样: 整数采用除基数再倒取余数法。小数部分采用乘基数再取整数法。 2.3二进制八进制、十六进制 一、2进制化为8、16进制 将一个二进制数化为8进制时候,在二进制中连续取三位数字,分别化为整数,所得结果即为8进制数。 将一个二进制数化为16进制时候,在二进制中连续取四位数字,分别化为整数,所得结果即为16进制数。 11001化为8进制数:从最右边开始以3位为一组,不够三位补0. 001:1 011:3 结果为:31 111001.10101化为8进制数:从小数点开始往左右以3位为一组,不够三位补0. 0.10101:0.52 101:5 010:2 001:1 111:7 结果为:71.52 一、8、16进制化为2进制 将一个8进制化为2进制数时候,在8进制中每一个数值化为三位数字,所得结果即为2进制数。 将一个16进制化为2进制数时候,在16进制中每一个数值化为四位数字,所得结果即为2进制数。 42(8进制)化为2进制:100010 42(16进制)化为2进制:01000010 三、26进制转化为10进制 A=1,B=2,C=3....Z=26,AA=27,AB=28...AZ=52,BA=53,...ZZ=702... 将输入的26进制取出每一个位的值,然后乘上26的指数(指数从右到左:0,1,2,3,4...) 26进制ZZ化为10进制:Z*26¹ + Z*26° = 26*27 = 702 26进制ZBC化为10进制:Z*26² + B*26¹+ C*26° = 17576+52+3 = 17631 四、10进制转化为26进制

比如给定的一个数53、2021,现在将两个十进制数化为26进制的字符表示: 在这里插入图片描述

在这里插入图片描述十进制转化为26进制的方法和十进制转化为2、8、16进制方法十类似的:除以基数取余再倒序。

五、10进制转化26进制中出现的问题及方法 5.1问题提出

上述给出了26进制转化为10进制和10进制转化为26进制的一般方法,但是对于10进制转化为26进制而言,会出现特殊情况。在10进制转化为2、8、16进制时候,最小是从0开始的。比如二进制的01,八进制的01234567…,十六进制的0123456789A…都是从0开始,而26进制是从A(1),B(2)开始的,就会出现一个问题:当遇到26的整数倍时候余数为0,应该怎么表示? 在这里插入图片描述

5.2 问题解决

比如这里的52,用26进制表示应该为:AZ,但是按照一般的转换方法却不能转化到AZ。 通过观察Z(26)、AZ(52)、BZ(78)、ZZ(702)、等含有"Z"的进制关系可以得到: 设m为整除26的余数,如果余数等于0,那么令m=26,同时将当前的商减1;之后在进行相除取余… 在这里插入图片描述 例如702:ZZ 在这里插入图片描述 只要在循环的时候判断当前的余数,然后给出条件设置就满足了。

六 java代码

下面给出了两个方法,分别十将十进制转化为26进制,将26进制转化为10进制。

class Transform { /** * @param num 表示输入的十进制数值 * @return 输出一个字符串表示26进制数值。 */ public String toChar(int num) { //转化为26进制 String s = ""; int n=num,r=num,m; boolean flag = true; while(flag){ //循环求余数 n = r; m = n%26; r = n/26; //判断是否倍26整除 if(m==0) { m=26; r = r-1; } //将26进制余数化为字符表示 s = (char)(m+64)+ s; if(r==0) break; } return s; } /** * @param s 表示传入的大写字母,这里以字符串表示 * @return 返回26进制的大写字符表示的十进制数 */ public int toNum(String s) { //转化为10进制 int num = 0; for(int i=s.length()-1,j=0;i>=0;i--,j++) { num = (int) (num + (s.charAt(i)-64) * Math.pow(26, j)); //大写字母A的ascall码为65,将A转化为1,B转化为2.... } return num; } }

测试结果为: 在这里插入图片描述 参考: 链接: link.



【本文地址】

公司简介

联系我们

今日新闻


点击排行

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

推荐新闻


图片新闻

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

专题文章

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