java八进制转十六进制_java-十进制、八进制、十六进制数互相转换

public class JZTurn {

public static void main(String[] args) {

int num2 = 1314521;

System.out.println("十进制数:"+num2);

System.out.println("十进制转换二进制:"+turn2(num2));

System.out.println("十进制转换八进制:"+turn8(num2));

System.out.println("十进制转换十六进制:"+turn16(num2));

//2-> 8

System.out.println("二进制转换八进制:"+twoTurnEight(turn2(num2)));

System.out.println("八进制转换二进制:"+eightTurnTwo(turn8(num2)));

System.out.println("八进制转换十六进制:"+eightTurnSixteen(turn8(num2)));

//2->16

System.out.println("二进制转换十六进制:"+twoTurnSixteen(turn2(num2)));

}

/**

* 10进制转二进制

*/

public static String turn2(int num){

String shortTimeNum = "";

int remainder = 0;

/**

* 模拟短除法

*/

while(num >= 1){

remainder = num % 2;

num = num / 2;

shortTimeNum = remainder + shortTimeNum;

}

return shortTimeNum;

}

/**

* 10进制转8进制

*/

public static String turn8(int num){

String shortTimeNum = "";

int remainder = 0;

/**

* 模拟短除法

*/

while(num >= 1){

remainder = num % 8;

num = num / 8;

shortTimeNum = remainder + shortTimeNum;

}

return shortTimeNum;

}

/**

* 10进制转16进制

* @return

*/

public static String turn16(int num){

String shortTimeNum = "";

int remainder = 0;

String tempStr = "";

/**

* 模拟短除法

*/

while(num >= 1){

remainder = num % 16;

tempStr = getOtherNum(remainder);

num = num / 16;

shortTimeNum = tempStr + shortTimeNum;

}

return shortTimeNum;

}

/**

* 2进制转换8进制

* 概念说明:这里转换的是整数,从右向左三位一组分别乘以2的零次方,2的一次方,2的2次方

* 然后把每组中的数相加,再把各组从左向右拼接到一起

* @param strNum2

*/

public static String twoTurnEight(String strNum2){

String resultNum = "";

int remainder = strNum2.length() % 3;

//补位 三位一组,最后一组位数不够用0补充

switch(remainder){

case 1:

strNum2 = "00"+strNum2;

break;

case 2:

strNum2 = "0"+strNum2;

break;

}

int index = strNum2.length()-1;

int tempNum1 = 0;

int tempNum2 = 0;

int tempNum3 = 0;

while(index>=1){

index -- ;

if(index % 3 == 0){

//每个数为一组

tempNum1 = Integer.parseInt(strNum2.substring(index, index+1));

tempNum2 = Integer.parseInt(strNum2.substring(index+1, index+2));

tempNum3 = Integer.parseInt(strNum2.substring(index+2, index+3));

resultNum = tempNum3*1+tempNum2*2+tempNum1*4+resultNum;

}

}

return resultNum;

}

/**

* 八进制转换二进制

* @param eightNum

* @return

*/

public static String eightTurnTwo(String eightNum){

String twoNum = "";

int index = eightNum.length()-1;

String tempNum = "";

while(index>=0){

tempNum = turn2(Integer.parseInt(eightNum.substring(index, index+1))) ;

//补位,在转换8进制时是每三为二进制数为一组,转换回二进制时位数也需要是三位,不够用零补

switch (tempNum.length()) {

case 1:

tempNum = "00"+tempNum;

break;

case 2:

tempNum = "0"+tempNum;

break;

}

twoNum = tempNum + twoNum;

index--;

}

return twoNum;

}

/**

* 2进制转换16进制

* 概念说明:这里转换的是整数,从右向左四位一组分别乘以2的零次方,2的一次方,2的2次方,2的3次方,

* 然后相加把每组最终的得数一次从左向右拼到一起,若其中一组的和大于9,按照对应关系转换后再把每组的结果拼接到一起

* @param strNum2

*/

public static String twoTurnSixteen(String strNum2){

String resultNum = "";

int remainder = strNum2.length() % 4;

//补位,四位一组,最后一组位数不够用0补充

switch(remainder){

case 1:

strNum2 = "000"+strNum2;

break;

case 2:

strNum2 = "00"+strNum2;

break;

case 3:

strNum2 = "0"+strNum2;

break;

}

int index = strNum2.length()-1;

int tempNum1 = 0;

int tempNum2 = 0;

int tempNum3 = 0;

int tempNum4 = 0;

int tempNum5 = 0;

while(index>=1){

index -- ;

if(index % 4 == 0){

//每个数为一组

tempNum1 = Integer.parseInt(strNum2.substring(index, index+1));

tempNum2 = Integer.parseInt(strNum2.substring(index+1, index+2));

tempNum3 = Integer.parseInt(strNum2.substring(index+2, index+3));

tempNum4 = Integer.parseInt(strNum2.substring(index+3, index+4));

tempNum5 = tempNum4*1 + tempNum3*2+tempNum2*4+tempNum1*8;

resultNum = getOtherNum(tempNum5) +resultNum;

}

}

return resultNum;

}

/**

* 8进制转换16进制

* @param strNum2

*/

public static String eightTurnSixteen(String strNum2){

return twoTurnSixteen(eightTurnTwo(strNum2));

}

/**

* 16进制转换中的特殊处理,需要把大于9的数字转换成字母

* @param tempNum

* @return

*/

public static String getOtherNum(int tempNum){

String tempStr = "";

if(tempNum > 9){

switch(tempNum){

case 10:

tempStr = "A";

break ;

case 11:

tempStr = "B";

break;

case 12:

tempStr = "C";

break;

case 13:

tempStr = "D";

break;

case 14:

tempStr = "E";

break;

case 15:

tempStr = "F";

break;

}

}else{

tempStr = String.valueOf(tempNum);

}

return tempStr;

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/305245.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows制作定时关机脚本_自动关机、自动打开程序… 让Windows自动执行任何操作...

文章转载于网络,侵删Windows 中有一个非常棒的功能,叫做“任务计划程序”,但是因为它的界面看起来有点复杂,导致很少有人使用它。其实对于任何人而言,“任务计划程序”都是非常棒的工具,它可以让 Windows 在…

techempower拿分系列之aspcore分析

techempower是一个Web Framework Benchmarks测试平台,世界上各大Web框架都参与其中,当然BeetleX也不例外。接下来的几篇文章中讲述aspcore使用怎样的方式在这评测中获取相对比较高的分数;而BeetleX使用了这些技巧之后也在是近测中获取的前10&…

对症下药教你清除电脑中的木马

特洛伊木马是一种基于远程控制的病毒程序,该程序具有很强的隐蔽性和危害性,它可以在不知情的的状态下控制或者监视用户的电脑。下面就讲讲木马经常藏身的地方和清除方法。  首先查看自己的电脑中是否有木马   1、集成到程序中   其实木马也是一个服…

mysqlbinlog工具_mysqlbinlog命令详解 Part 1-实验环境准备

前面的一些章节我们对mysqldump常用命令进行了讲解这个专题的内容为mysqlbinlog命令的详解mysqlbinlog是mySQL中用来处理binlog的工具1. MySQL二进制日志介绍服务器的binlog包含一些event这些event描述了数据库内容的状态,包含了数据修改,服务器重启等&a…

是学习Java还是Python?一张图告诉你!

Java 和 Python 一直都是两种很火很强大的编程语言,对于刚开始起步学习编程的同学来说,会迷惑且最经常问的问题是,我该学 Java 还是 Python,是不是 Python 容易学,或是应该先学什么编程语言等等这样的问题。作为一名 J…

Java游戏吉他英雄_《吉他英雄:现场》《摇滚乐队4》横向对比:各有所长!

《吉他英雄:现场》《摇滚乐队4》横向对比:各有所长!2015-11-29 10:29:07来源:界面编辑:评论(0)作为摇滚游戏界两大支柱,最近回归的《吉他英雄:现场(Guitar Hero Live)》(以下简称GHL)和《摇滚乐…

_云计算学习路线图素材课件,Linux中软件安装的方式

很多初学者感觉云计算就是一个听起来比较高大上的名词,每次想要了解它的时候都像是雾里看花,迷迷糊糊看不真切,至于它是干什么的就更不了解了,其实云计算学起来在IT行业中还是比较容易上手的,接下来我给大家分享Linux中…

Redis集群搭建很easy

前言 哨兵模式虽然让读写分离更加高可用,但单台服务器由于本身的内存和CPU瓶颈,对于高并发和大数据业务的应用场景还是远远不能满足;对于这种情况,有点经验的小伙伴会毫不犹豫的想到集群,搞他好几个节点,负…

您是否也想过让你的电脑百毒不侵呢!

您是否也想过让你的电脑百毒不侵呢<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />我们的防火墙是不是经常有人来***你XXX端口呢?如果关掉相应没有用处的端口不就好了吗? 一般来说&#xff0c;我们采用一些功能强大的反黑软件…

3dsmax子菜单无法选择_3DsMax—用平面图片制作3D模型

最终效果本篇为图文教程&#xff0c;已经将用平面图片制作3D模型视频教程放到3dsmax学习网中&#xff0c;需要看视频教程的请到3DsMax学习网(www.dddmax.cn)教程中观看。图文教程01先在网上找一张简单的素材图片&#xff0c;如图所示。(图片最好背景颜色和图形颜色2种颜色)02用…

python爬取网页数据软件_python爬虫入门10分钟爬取一个网站

一、基础入门1.1什么是爬虫爬虫(spider&#xff0c;又网络爬虫)&#xff0c;是指向网站/网络发起请求&#xff0c;获取资源后分析并提取有用数据的程序。从技术层面来说就是 通过程序模拟浏览器请求站点的行为&#xff0c;把站点返回的HTML代码/JSON数据/二进制数据(图片、视频…

国庆中秋活动——读完这两套书,宝宝就变小小物理学家了!

通知&#xff01;通知&#xff01;通知&#xff01;&#xff01;&#xff01;玩酷屋十一黄金优惠限时限量秒杀活动&#xff0c;能抢到算你厉害&#xff1a;1、活动期间 2017/10/02 22:30 ——2017/10/05 22:302、【宝宝的物理学】第一辑 原价&#xff1a;189元&#xff0c;秒…

java的正则表达式 CPU_小心踩雷!一个小小的正则表达式竟把CPU拖垮......

原标题&#xff1a;小心踩雷&#xff01;一个小小的正则表达式竟把CPU拖垮......“前几天线上一个项目监控信息突然报告异常&#xff0c;上到机器上后查看相关资源的使用情况&#xff0c;发现 CPU 利用率将近 100%。通过 Java 自带的线程 Dump 工具&#xff0c;我们导出了出问题…

欲善其事,先利其器 | IDCF第6期DevOps案例研究回顾(附视频)

2021年&#xff0c;会有哪些“意想不到”在等待我们&#xff1f;2021年&#xff0c;会有哪些“变与不变”在等待我们&#xff1f;这些&#xff0c;都未可知。借假修真&#xff0c;唯一可知的是过去有哪些值得我们借鉴与学习&#xff0c;并帮助我们更好前进的经验。2021年开端&a…

ArcGIS中的投影和坐标转换

ArcGIS中的投影和坐标转换 1 ArcGIS中坐标系统的定义 一般情况下地理数据库&#xff08;如Personal GeoDatabase的 Feature DataSet 、Shape File等&#xff09;在创建时都具有空间参考的属性&#xff0c;空间参考定义了该数据集的地理坐标系统或投影坐标系统&#xff0c;没有…

电脑任务管理器快捷键_电脑知识小常识

0、计算机专业的学生的电脑常识未必有你多&#xff0c;电脑坏了找他们没用。1、重启。不管啥问题&#xff0c;上来就是重启。2、找一个学过计算机的来重启。3、还不行就让那个学过计算机的给你重装个系统。4、再不行就换个电脑吧。5、妹子可以忽视以上规则&#xff0c;直接找计…

大数据迁徙图:逃离北上广,他们竟然去了这里!

“做出这个决定&#xff0c;我们考虑了很久。”不久前&#xff0c;高铭离开了工作生活12年的北京&#xff0c;举家回到故乡重庆。“重庆房价比北京便宜得多&#xff0c;孩子上学的问题也好解决。”高铭的经历并非个案。最近几年&#xff0c;“逃离北上广”成为经久不衰的热门话…

python绘制蟒蛇绕圈圈_Python学习之循环--绕圈圈(蛇形盘)

效果图&#xff1a;注意哦&#xff0c;右边多出来的一点不是程序有问题&#xff0c;是打印的时候我用的\t&#xff0c;但100&#xff0c;三个字符顶格的时候给顶出去的&#xff0c;我太懒了&#xff0c;不想再调输出格式了&#xff0c;就这么凑合看吧实现代码&#xff1a;sum …

内存缓存MemoryCache

内存缓存MemoryCache实现了ICache接口&#xff0c;Redis同样实现了ICache接口&#xff0c;两者在缓存操作上达到了高度抽象统一。应用设计时一律使用ICache接口&#xff0c;开发环境装配为MemoryCache&#xff0c;生产环境根据分布式需要可以装配为Redis。如果应用系统没有分布…

quicktype游戏java程序_使用QuickType工具从json自动生成类型声明代码

一、QuickType 工具功能简介QuickType 是一款可以根据 json 文本生成指定语言(如 Type Script&#xff0c;C&#xff0c;,Java&#xff0c;C#&#xff0c;Go 等)类型声明代码的工具。例如我们在写接口调用处理收到响应数据的逻辑时一般分为如下两步&#xff1a; 1.根据接口返回…