我就用絕招試試手——
1. 什麼是查表法:
通過容器將對應的關係進行儲存。通過運算得出相應關係中的其中一方的結果,再通過這個結果去容器中找對應的另乙個內容。
可以這樣理解:
在庫房裡有六個箱子,對每箱子都進行了編號,當我們要找某個箱子時,可以根據對應的編號到庫房裡去找相應的箱子!
2. 查表法的特點——
a) 有對應的關係——方便查詢;
b) 必須要有容器——方便儲存!
3. 查表法什麼時候用?
當分析的問題當中存在對映關係時,可以使用查表法;
對於對映關係,如果對應的一方是有序的編號,比如陣列的角標。 這時可以使用陣列作為這個關係的容器將對應關係進行儲存。陣列就可以作為這些對映關係的儲存表
4. 查表法如何用——
a) 下面通過具體的例項進行說明:
用查表法進行——進製的轉換;
查表法的引出;
當我們要將十進位制轉換為 十六進製制的時候 我們要做哪些事情呢?
以十進位制60 為例:
60在記憶體中表示為
要進行除16 的操作,我們可以用移位操作,以4為單位向右移動!取出最低四位,然後再接著取下乙個四位——用& 操作,完成
根據這個思路,接下來完成**:
class jzdemo3
public static void tohex(int num )
; //定義乙個臨時容器;
char arr = new char[8]; //字元陣列在被定義後,它的預設初始化值為'\u0000'相當於空格。
int pos = arr.length ;
// 接下來 就要把 查到的字元 存到arr 中來,也就是要解決乙個儲存的問題。
while(num != 0)
//儲存資料的arr陣列遍歷
for(int x = pos; x < arr.length ; x++)
system.out.println();
}}
基本功能完成後對**進行優化,現在只能進行十進位制————十六進製制,優化有可以完成十進位制——十六進製制 or 八進位制 or 二進位制的轉換。
因為二進位制 0 , 1
八進位制 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7
這些在char [chs]裡面都有所以不需要再次定義。
在進行轉十六進製制時右移4位,轉八進位制時右移3位,轉二進位制時右移1位,根據這個特點,進行優化:
class jzdemo4
//轉2
public static void tobin(int num)
//轉16
public static void tohex(int num)
//轉8
public static void toba(int num)
public static void trans(int num , int base , int offset)
char chs = ;
char arr = new char[32];
int pos = arr.length;
while(num != 0)
for(int x = pos ; x < arr.length ; x++)
system.out.println();
}}
到此,用查表法 已經基本實現 進製的轉換,當中尚有諸多漏洞,將在接下來修改!
敬請期待————
Java查表法進行進製轉換
語言也是這樣,它們也有著查表的方法,因為這樣使它更加簡單,更加容易讓人理解,當程式寫的一塌糊塗時,真的是很難再拾起來,所以簡單對程式設計師來說,就是天大的樂事!今天我帶來的就是福音,就是用天天幹的查表法來實現進製準換,下面就是激動人心的 部分 class arraytest7 十進位制 二進位制 p...
Java 查表法進製轉換
public class formattrans 雙重引用,這樣再呼叫時就不用再填base offset值,只需寫num 待轉化的數 public static void tobin int num public static void tohex int num public static voi...
使用 bc 進行進製轉換
使用 bc 進行進製轉換 在 shell 中進行進製轉換的另乙個訣竅是使用bc,它是一種任意精度運算語言,大多數 unix linux 安裝程式都提供。因為它允許您指定輸出進製,所以當您需要以十進位制以外的進製輸出時,這是一種很好的技術。bc的特殊變數ibase和obase分別包含用於輸入和輸出的進...