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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java:数据结构(二)栈的应用(进制转换全收集)

發布時間:2025/5/22 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java:数据结构(二)栈的应用(进制转换全收集) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

說到進制轉換,java已經封裝了基本的方法,在競賽中使用封裝的方法自然能節省大量時間

另一位仁兄介紹的封裝好的方法:

https://blog.csdn.net/m0_37961948/article/details/80438113

如果不想看上面的全部,我總結了兩條基本方放,記下就可以隨意轉化:

掌握這兩個方法就可以實現任意進制的隨便轉化

?(這個是針對競賽,如果是需要學習底層,大家還在看api研究吧)

再看一個水題:

題目描述

寫出一個程序,接受一個十六進制的數值字符串,輸出該數值的十進制字符串。(多組同時輸入?)

輸入描述:

輸入一個十六進制的數值字符串。

輸出描述:

輸出該數值的十進制字符串。

示例1

輸入

0xA

輸出

10

?由于本題目簡單,所以只給出代碼:

1 import java.util.Scanner; 2 import java.util.*; 3 4 public class Main{ 5 public static void main(String args[]){ 6 Scanner in = new Scanner(System.in); 7 while (in.hasNext()) { 8 String a=in.next(); 9 char[] p=a.toCharArray(); 10 a=String.valueOf(Arrays.copyOfRange(p,2,p.length)); 11 System.out.println(Integer.parseInt(a, 16)); 12 } 13 } 14 }

后面就是靠棧實現任意進制不使用已經封裝好的方法:(棧使用的是我自己寫的)

1 /** 2 * 進制轉換 3 * 算法設計:先將其他進制統一轉為10進制,再利用取余法 4 * 將10進制轉為其他進制 5 * @param n 需要轉化的數 6 * @param n1 需要轉化數的進制 7 * @param n2 轉化后的進制 8 * @return 轉換后的數 9 */ 10 static String systemTransformation(String n, int n1, int n2) { 11 MyArraysStack<Character> e=new MyArraysStack<Character>(); 12 char[] a=new char[]{'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; 13 char[] b=n.toCharArray(); 14 int bNumber=0,t=0; 15 //[start]將n1進制轉為10進制 16 for (char p:b){ 17 e.push(p); 18 } 19 while (!e.isEmpty()){ 20 char temp=e.pop(); 21 bNumber+= Arrays.binarySearch(a,temp)*Math.pow(n1,t); 22 t++; 23 } 24 //[end] 25 //[start] 將10進制轉為n2進制 26 StringBuilder builder=new StringBuilder(); 27 while (bNumber>0){ 28 e.push(a[bNumber%n2]); 29 bNumber/=n2; 30 } 31 while (!e.isEmpty()) { 32 builder.append(e.pop()); 33 } 34 //[end] 35 String str; 36 str=builder.toString(); 37 return str; 38 } * 算法設計:先將其他進制統一轉為10進制,再利用取余法 * 將10進制轉為其他進制
* 最高到16進制向其他任意一進制轉化
* 如果需要更大的進制則需要擴充a數組即可
當你覺得自己在進制轉換上已經完全ok了,此時我又遇到了一道有趣的題目:

題目描述

輸入兩個整數,求兩個整數二進制格式有多少個位不同

輸入描述:

兩個整數

輸出描述:

二進制不同位的個數 示例1

輸入

22 33

輸出

5 一看到這道題我首先想到,先將兩個數轉為二進制,然后循環比對出值(突然感到十分麻煩)
然后一看討論發現了騷操作:
使用異或:
1 public class Solution { 2 /** 3 * 獲得兩個整形二進制表達位數不同的數量 4 * 5 * @param m 整數m 6 * @param n 整數n 7 * @return 整型 8 */ 9 public int countBitDiff(int m, int n) { 10 String str=Integer.toBinaryString(m^n); 11 str=str.replaceAll("0",""); 12 return str.length(); 13 } 14 }

  異或就是不同為1,相同為0,將m和n異或,是位運算,m^n的結果是m和n二進制的異或結果

  Integer.toBinaryString();將m^n轉為二進制

  然后替換了字符串里面的0,返回字符串長度,即得到了不同的位數

?

轉載于:https://www.cnblogs.com/lzy321/p/10388131.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的java:数据结构(二)栈的应用(进制转换全收集)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 成年人视频在线免费看 | 观看免费av| 女~淫辱の触手3d动漫 | 日韩和一区二区 | 一区二区三区在线免费观看 | 久久99网 | 国产成人av在线播放 | 久久99精品视频 | 欧美成人国产va精品日本一级 | 美国一级黄色大片 | 激情内射人妻1区2区3区 | 一级大片免费观看 | 可以免费看的av | 成人免费午夜视频 | 久久国产精品久久精品国产 | 四虎在线影视 | 亚洲一区二区日本 | 亚洲精品国产精 | av激情在线 | 国产免费一区 | 亚洲精品久久久久中文字幕二区 | 草1024榴社区成人 | youjizz亚洲女人 | 91久久超碰| 99ri在线观看 | 日韩www在线观看 | 午夜影院一区二区 | 肉丝超薄少妇一区二区三区 | 国产在线观看第一页 | 国产精品一区二区久久久 | 日韩aa | 朝鲜美女黑毛bbw | 黄色网页网站 | 国产亚韩 | 国产怡红院 | 久操热 | 性少妇bbw张开 | 日韩亚洲精品视频 | 少妇视频在线播放 | 亚洲一区二区免费 | 男生插女生网站 | 欧美性天天 | 在线观看国产三级 | 挪威xxxx性hd极品 | 好吊妞操 | 色婷婷狠狠爱 | 欧美激情网址 | 国产亚洲精品精品国产亚洲综合 | 国产精品99久久久久久久久久久久 | 超碰最新上传 | 免费无码一区二区三区 | 不卡一二三 | 欧美性xxxxx极品少妇 | 久久无码人妻丰满熟妇区毛片 | 久久性生活视频 | 好吊操妞 | av白浆| 色中文在线 | 一区二区三区日 | 操处女逼视频 | 亚洲欧美黄色片 | 丰满多毛的大隂户视频 | 91毛片观看 | 成人一区三区 | 91成人免费视频 | 婷婷伊人综合 | 一级二级在线观看 | 欧美亚洲伦理 | www.色综合.com | 少妇熟女一区二区三区 | 亚洲国产精一区二区三区性色 | 精品人妻一区二区三区视频 | 美女在线播放 | 伊人老司机 | 高清视频免费在线观看 | 日韩六十路 | 在线观看va| 婷婷丁香激情 | 日韩一级在线视频 | 毛片a片免费看 | 国产精品99久久久久久久久 | 波多野结衣人妻 | 91老师片黄在线观看 | 精品国产一区二区三区av性色 | 亚洲精品一二三区 | 国产电影免费观看高清完整版视频 | 99国产精品99久久久久久粉嫩 | 成人h视频在线观看 | 精品视频一区二区三区在线观看 | 国产无遮挡a片又黄又爽 | 亚洲男人的天堂网站 | 国产精品自拍片 | 日韩av动漫 | 天天干视频 | 97影院手机版 | 欧美日韩一卡二卡 | 天堂福利在线 | 国产中文字幕在线播放 | 成人黄色短片 |