Java数组实现进制转换
进制间转换关系
进制间转换详细介绍
使用&运算的进制转换
- 十进制转十六进制
变成二进制取最低四位(&15也就是4位都是1)算值,然后再右移4位,再&15得到值,最后将值反过来就是对应的十六进制。
使用查表法十进制转十六进制
0 1 2 3 4 5 6 7 8 9 A B C D E F 十六进制元素
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 相当于数组的角标
先&15,再右移4位。若值还不为0则继续右移4位,再&15 - 十进制转八进制
先&7(取最低3位),再右移3位。若值还不为0则继续右移3位,再&7 - 十进制转二进制
先&1(取最低1位),再右移1位。若值还不为0则继续右移1位,再&1
public static void trans(int num,int base,int offset) {if(num==0) {//当是数字0进行进制转换则直接打印0并返回System.out.println(0);return ;}//定义一个容器char[] chs = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};// char[] arr =new char[32];int pos = arr.length;//定义一个类似于指针的变量,是arr的长度while(num!=0) {//当要转换的数字不为0int temp=num & base;//先&上base(15/7/1)//arr先取长度,然后减1得到对应的下标,从最后一个位开始存对应存储进去arr[--pos] = chs[temp];//再将&base之后的结果通过表结构chs[下标](下标小于10,则一样,反之则对应字母)num = num >>> offset; //紧接着右移offset(4/3/1) }for(int x=pos;x<arr.length;x++) {//循环遍历正打印存储的值System.out.print(arr[x]);}}
arr[–pos] = chs[temp];刚开始时pos指向的位置是空白地方,先自减1之后,
指向了对应的数组下标的位置。存储第一次&base得到的值
右移offset位之后再&base,得到的值再存对应位置(对应位置也自减1)。
调用
//十进制-》二进制System.out.println("6十进制-》二进制");trans(6,1,1);System.out.println("");//十进制-》八进制System.out.println("60十进制-》八进制");trans(60,7,3);System.out.println("");//十进制-》十六进制System.out.println("60十进制-》十六进制");trans(60,15,4);System.out.println("");
结果
Java数组实现进制转换相关推荐
- Java提供的进制转换
Java提供的进制转换 Integer.toHexString(int i); //十进制转成十六进制Integer.toOctalString(int i); //十进制转成八进制Integer.t ...
- Java的API进制转换
利用Java的API进制转换 一.其他进制转十进制 1.使用Integer.parseInt()方法 2.使用Integer.valueOf()方法 二.十进制转换其他进制 1.使用Integer.t ...
- java语言编写进制转换_Java 3种方法实现进制转换
由其他进制转换为十进制比较简单,下面着重谈一谈十进制如何化为其他进制. 1.使用Java带有的方法Integer,最简单粗暴了,代码如下 //使用java提供的方法 //但仅局限于比较常用的二进制.八 ...
- java函数实现进制转换与java实现八进制到十进制的转换(百练OJ:2735:八进制到十进制)
java进制转换函数介绍:Java二进制.八进制.十进制.十六进制相互转换: 二进制转十进制 Integer.parseInt("0110", 2); 八进制转十进制 Intege ...
- java中的进制转换
进制转换 首先是十进制转化为其他进制,如二进制,八进制,十六进制: 它们在java中都有专门的函数可供调用: 如:十进制转化为二进制时调用toBinaryString(); 十进制转化为八进制时调用t ...
- java里的进制转换函数_基于Java中进制的转换函数详解
十进制转成十六进制: Integer.toHexString(int i) 十进制转成八进制 Integer.toOctalString(int i) 十进制转成二进制 Integer.toBinar ...
- java中的进制转换(十进制和二进制)
在java中有进制转换,其中有十进制,二进制,八进制,十六进制,这里主要讲的是其中的十进制和二进制. 当我们一个数要变成二进制的时候可以对它进行除二运算.就比如6的二进制.如图 ...
- 从0开始学习C语言————数组、进制转换、函数
数组: 什么是数组: 变量的组合,是一种批量定义变量的方式 定义: 类型 数组名[数量]; int num1,num2,num3,num4,num5; int arr[5]; 使用:数组名[下标]; ...
- Java实现任意进制转换拓展进制转换计算器
JAVA实现蓝桥杯基础练习十六进制转换八进制-----------拓展进制转换计算器 这个题目我浏览了大量的道友的文章发现十分麻烦,但仍然从其中收益菲薄,所以在这里分享一下我认为最好的代码 impor ...
最新文章
- pytorch attention
- Python中的并行处理(Pool.map()、Pool.starmap()、Pool.apply()、)
- echarts 选中bush中lineX
- 让 步( 写的太好了!)
- 群晖python套件包_利用群晖Docker安装ubuntu16.04搭建python网站服务器(部署篇)
- JavaScript中的String substring()方法和示例
- android新材料设计,android - 如何实现新材料BottomAppBar为BottomNavigationView - SO中文参考 - www.soinside.com...
- 联络员(信息学奥赛一本通-T1393)
- 令人拍案叫绝的EfficientNet和EfficientDet
- Djago模型层(基础)
- MegCup 2017 极客挑战赛 初赛试题
- mac terminal update management pack
- springcloud官方文档_springcloud-microservice 快速构建分布式系统
- 好想学python机器人_拥有自动学习的Python机器人-ChatterBot
- 关于spark写入文件至文件系统并制定文件名之自定义outputFormat
- 微信小程序开发者工具扫码成功但是进不去
- E. MEX and Increments
- 改进YOLOv7-Tiny系列:首发改进结合BiFPN结构的特征融合网络,网络融合更多有效特征,高效涨点
- 《权游》第八季震撼开播,10行代码动态展示其中的爱恨情仇
- 建议收藏|事关升学,一篇文章帮你了解科技特长生