日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/4 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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;

}

}

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的java八进制转十六进制_java-十进制、八进制、十六进制数互相转换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。