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进制转二进制
?????
@param num
????? @return
?????
/
????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进制
?????
@param num
????? @return
?????
/
????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进制
?????
@param num
????? @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+tempNum22+tempNum14+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 + tempNum32+tempNum24+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;
????}
}
输出结果:
十进制数:1314521
十进制转换二进制:101000000111011011001
十进制转换八进制:5007331
十进制转换十六进制:140ED9
二进制转换八进制:5007331
八进制转换二进制:101111011011001
八进制转换十六进制:5ED9
二进制转换十六进制:140ED9
喜欢这样文章的可以关注我,我会持续更新,你们的关注是我更新的动力!需要更多java学习资料的也可以私信我!
祝关注我的人都:身体健康,财源广进,福如东海,寿比南山,早生贵子,从不掉发!

原文地址:https://blog.51cto.com/14623707/2470561

时间: 2024-10-13 02:29:22

java-十进制、八进制、十六进制数互相转换的相关文章

软帝学院:java十进制、八进制、十六进制数互相转换

java-十进制.八进制.十六进制数互相转换 下面是一个十进制.八进制.十六进制数互相转换的小程序 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70

二进制、八进制、十进制、十六进制数之间的转换

一.二进制数转换成十进制数 由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和.这种做法称为"按权相加"法. //Function to convert binary to decimal int binary_decimal(int num) {     int dec = 0, base = 1, rem;     while(num > 0)     {         rem = num % 10;         dec =

二进制、八进制、十进制、十六进制之间转换

一. 十进制与二进制之间的转换 (1) 十进制转换为二进制,分为整数部分和小数部分 ① 整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数.下面举例: 例:将十进制的168转换为二进制 得出结果 将十进制的168转换为二进制,(10101000)2 分析:第一步,将168除以2,商84,余数为0. 第二步,将商84除以2,商42余数为0.

二进制 八进制 十进制 十六进制之间的转换

一. 十进制与二进制之间的转换 (1)十进制转换为二进制,分为整数部分和小数部分 ① 整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数.下面举例: 例:将十进制的168转换为二进制 得出结果 将十进制的168转换为二进制,(10101000)2 分析:第一步:将168除以2,商84,余数为0.  第二步:将商84除以2,商42余数为0. 

二进制、八进制、十进制、十六进制的转换

1. 二进制转换成八进制 方法:3位二进制数按权展开相加得到1位八进制数.(注意事项,3位二进制转成八进制是从右到左开始转换,不足时补0). 例子:11101 = 011 101 = 35 2. 二进制转换成十进制 方法:把二进制数按权展开,相加即得十进制数. 例子:11101  = 1*2的四次方 + 1*2的三次方 + 1*2的二次方 + 0*2的一次方 + 1*2的零次方 = 29 3. 二进制转换成十六进制 方法:与二进制转八进制方法近似,八进制是取三合一,十六进制是取四合一.(注意事项

《转载》二进制、八进制、十进制、十六进制之间转换

一. 十进制与二进制之间的转换 (1) 十进制转换为二进制,分为整数部分和小数部分 ① 整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数.下面举例: 例:将十进制的168转换为二进制 得出结果 将十进制的168转换为二进制,(10101000)2 分析:第一步,将168除以2,商84,余数为0. 第二步,将商84除以2,商42余数为0.

二进制、八进制、十进制与十六进制的转换

进制也就是进制位,对于接触过电脑的人来说应该都不陌生,我们常用的进制包括:二进制.八进制.十进制与十六进制,它们之间区别在于数运算时是逢几进一位. 二进制与十进制之间的转换 1 十进制转二进制 方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止. (具体用法如下图) 2 二进制转十进制 方法为:把二进制数按权展开.相加即得十进制数. (具体用法如下图) 二进制与八进制之间的转换 1 二进制转八进制 方法为:3位二进制数按权展开相加

PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明

PHP函数篇详解十进制.二进制.八进制和十六进制转换函数说明 作者: 字体:[增加 减小] 类型:转载 中文字符编码研究系列第一期,PHP函数篇详解十进制.二进制.八进制和十六进制互相转换函数说明,主要掌握各进制转换的方法,以应用于实际开发 一,十进制(decimal system)转换函数说明 1,十进制转二进制 decbin() 函数,如下实例 echo decbin(12); //输出 1100 echo decbin(26); //输出 11010 decbin (PHP 3, PHP

java中的进制转换

进制转换 首先是十进制转化为其他进制,如二进制,八进制,十六进制: 它们在java中都有专门的函数可供调用: 如:十进制转化为二进制时调用toBinaryString(); 十进制转化为八进制时调用toOctalString(); 十进制转化为十六进制时调用toHexString(); 代码实现: // 进制转化 public class Main_2 { public static void main(String[] args) { Integer a=new Integer(20); //